2016-05-06 154 views
0

我想检查一些字段是否为空。如果为空,则用户可以更新配置文件而不更改当前密码。 如果不为空,则存储密码的新值。我的控制器:laravel 5.2 - 检查字段是否为空

public function storeUpdatedUser(Request $request) 
{ 
    $this->validate($request, ['email' => 'required', 'name' => 'required', 'surname' => 'required', ]); 

    $user = User::findOrFail(Auth::user()->id); 
    $user->update($request->all()); 
    $new_password = false; 

    if($new_password != ""){ 
     $new_password = bcrypt($request->new_password); 
     $user->password = $new_password; 
    } 

    $user->save(); 
    Session::flash('flash_message', 'User updated!'); 

    return redirect('/');   
} 

但不工作,如果我把一些价值 图像没有更改密码时更好地解释 enter image description here

回答

1

试试这个:

public function storeUpdatedUser(Request $request) 
{ 
    $this->validate($request, ['email' => 'required', 'name' => 'required', 'surname' => 'required', ]); 

    $user = User::findOrFail(Auth::user()->id); 
    $user->update($request->all()); 

    if(!empty($request->input('new_password'))) { 
     $new_password = bcrypt($request->input('new_password')); 
     $user->password = $new_password; 
     $user->save(); 
    } 

    Session::flash('flash_message', 'User updated!'); 

    return redirect('/');   
} 
+0

我尝试谢谢你,但不工作,旧密码仍然活着 – user0111001101

+0

我已经做了更新,请再次检查。 –

+0

哦,谢谢!工作很棒! – user0111001101