本质上,我有一个页面可以更新用户记录。
{!! 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 5。
使用:$request->get('password');
而不是:$request->only('password');
为什么:
$request->only();
- 返回包含所列字段的数组
在这种情况下,它返回只有一个键和空值的数组,但数组不为空。