2016-11-15 72 views
0

请尝试尽可能地清楚我的意思。Laravel用户更新问题

为了使用laravel的登录和注册功能,后来使用模板来提供需要的,我推出了一个make Auth调用。

  1. 如果用户是admin,他/她可以注册一个新用户。

    public function openNewUser(){ 
    return view('auth.register'); 
    

    }

    NB。部分更新。

    public function registerNewUser(Request $request){ 
         $this->validate($request,[ 
          'email' => 'required|email|unique:users', 
          'name' => 'required|max:120', 
          'password' => 'required|min:4|confirmed']); 
    
         $user = new User(); 
    
         $user->name = $request->name; 
         $user->email = $request->email; 
         $user->password = encrypt($request->password); 
    
         if (Gate::denies('register-user')) { 
          return redirect()->back(); 
         } 
    
         $user->save(); 
         return view('home'); 
        } 
    
  2. 问题1 - I也想更新用户,这是给的问题。密码输入返回空字段,我明白。当我尝试更改它时,确认密码总是给出不匹配,即使它们是相同的。当我将它留空时,它不起作用,因为该字段需要填写。我把它们从表格中拿走,然后试着如果我只能编辑电子邮件,但只是没有工作。

2.我才意识到所有登录我与我的新的登记做公益功能userUpdate(请求$请求,$ USER_ID){

$this->validate($request,[ 
     'email' => 'required|email', 
     'name' => 'required|max:120', 
     'password' => 'required|min:4|confirmed']); 
     $user = new User(); 
     $user->name = $request->name; 
     $user->email = $request->email; 
     $user->password = encrypt($request->password); 

    if (Gate::allows('register-user')) { 
      $user->save(); 

     $user->roles()->attach($request->roles); 
     return redirect()->route('view_users'); 
    }elseif (Gate::denies('register-user')) { 
     if (Auth::id() == $user_id) { 
      $user->save(); 

      $user->roles()->attach($request->roles); 
      return redirect()->route('view_users'); 
     }else{ 
      return redirect()->back(); 
     } 
    } 

} 

问题给出了这些凭证不符合我们的记录。即使凭据在那里,并已正确注册。 我使用laravel提供的登录名,但我创建了自己的注册表。

请我如何编辑和更新我的用户,也可以注册

您正在使用什么版本的Laravel的
+0

疯狂猜测:是否有可能在此期间更改您的应用程序密钥('php artisan key:generate')? – dbr

+0

@dbr不,我没有改变的关键,一切似乎看起来不错,应该正常工作? – user3602477

回答

0

我发现什么是错的,因为我使用Laravel的登录名,我的注册必须使用加密密码,这是Laravel注册使用的加密,但是当我创建自己的注册时使用了加密,因此存在冲突登录时。(记住我使用Laravels登录不是我自己的书面登录)。我希望这可以帮助别人

0

后登录?

这里是我的(V5.3)register()RegisterController.php方法,登记至少部分:

public function register(Request $request) 
{ 
... 
// save and login user 
$user = $this->create($request->all()); 
$this->guard()->login($user); 
... 
} 
... 
protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'lastname' => $data['lastname'], 
     'phone' => $data['phone'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

LoginController.php

public function login(Request $request) 
{ 
$credentials = $this->credentials($request); 
... 
if ($this->guard()->attempt($credentials, $request->has('remember'))) { 
     return $this->sendLoginResponse($request); 
    } 
} 

login()方法希望我没有错过任何东西。请记住,5.2版本的内容已经改变。

+0

虽然我创建我自己的用户我使用Laravels身份验证登录,所以我实际上不写我自己的登录代码。 ________ 但是在我写寄存器代码之前发生的奇怪事情我用Laravels注册方法注册了一个用户。在更改我的代码后,我仍然可以使用我创建的用户登录,但是所有使用我的代码创建的用户都正在数据库中注册,但我无法登录他们 – user3602477