Laravel 5 使用密码更新用户记录


Laravel 5 updating user record with out password

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

        {!! 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(); - 返回包含所列字段的数组

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