2015-06-16 89 views
3

本质上,我有一个页面可以更新用户记录。Laravel 5用密码更新用户记录

 {!! Form::label('username', 'Username:') !!} 
     {!! Form::text('username', null, ['class'=>'form-control'])!!} 

     {!! Form::label('password', 'Password:') !!} 
     {!! Form::password('password',['class'=>'form-control'])!!} 

     {!! Form::label('name', 'Name:') !!} 
     {!! Form::text('name', null, ['class'=>'form-control'])!!} 

     {!! Form::label('email', 'Email:') !!} 
     {!! Form::text('email', null, ['class'=>'form-control'])!!} 

现在有2个问题,我面对:

1)如果我不希望更改用户密码,只需编辑例如名称,它将更新的用户密码为空(要么 ””)。这是因为提交时文本框是空的。

这是我试图在我的控制器没有快乐

public function update($id, Request $request) 
{ 
    $user = User::findOrFail($id); 
    $newPassword = $request->only('password'); 

    if(empty($newPassword)){ 
     $user->update($request->except('password')); 
    }else{ 
     $user->update($request->all()); 
    } 
    return redirect('users'); 
} 

有谁知道我怎么能解决呢?我在跳laravel有办法处理这些事情。

仅供参考,我使用的是laravel 5。

回答

4

使用:$request->get('password');

代替:$request->only('password');

为什么:

$request->only(); - 返回数组列出的字段

在这种情况下,它返回数组只有一个键和空值,但数组不是空的。

+0

感谢这帮了我。我对laravel很陌生,所以总会有一些我在开始时错过的小事情。谢谢! –