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

Mat*_*art 4 php laravel 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'])!!}
Run Code Online (Sandbox Code Playgroud)

现在我面临两个问题:

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');
}
Run Code Online (Sandbox Code Playgroud)

有人知道我该如何解决吗?我希望laravel有办法处理这些事情。

作为参考,我正在使用laravel 5。

D. *_*ski 5

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

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

为什么:

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

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