Php 需要Laravel 5验证规则,带有密码确认
我对编辑表单中的验证规则有问题。我的表单字段有Php 需要Laravel 5验证规则,带有密码确认,php,validation,laravel-5.2,Php,Validation,Laravel 5.2,我对编辑表单中的验证规则有问题。我的表单字段有姓名,电子邮件,密码和密码确认。MyUpdateUserRequest类返回以下规则: return [ 'name' => ['required', 'max:50', 'min:3'], 'email' => ['required', 'email', 'unique:users,email,' .$this->route('users')], 'passw
姓名
,电子邮件
,密码
和密码确认
。MyUpdateUserRequest
类返回以下规则:
return [
'name' => ['required', 'max:50', 'min:3'],
'email' => ['required', 'email', 'unique:users,email,' .$this->route('users')],
'password' => ['required_with:password_confirmation', 'confirmed']
];
而UsersController
中的更新方法是:
public function update(Requests\UpdateUserRequest $request, $id)
{
$user = $this->users->findOrFail($id);
$user->fill($request->only('name', 'email', 'password'))->save();
return redirect(route('backend.users.edit', $user->id))->with('status', 'User has been updated.');
}
这是一种形式:
{!!表单::模型($user[
'method'=>$user->exists?'put':'post',
'route'=>$user->存在?['backend.users.update',$user->id]:['backend.users.store']
]) !!}
{!!Form::label('name')!!}
{!!Form::text('name',null,['class'=>'Form control'])
{!!Form::label('email')!!}
{!!Form::email('email',null,['class'=>'Form control'])
{!!Form::label('password')!!}
{!!Form::password('password',['class'=>'Form control'])
{!!Form::label('password_confirmation')!!}
{!!Form::password('password_confirmation',['class'=>'Form control'])
{!!Form::submit($user->exists?'Save user':'Create New user',['class'=>'btn btn primary btn sm'])!!
您需要单独更新数据库,而不使用fill等,因为它总是会得到密码值是否为空,然后添加它,所以请尝试:
$user = $this->users->findOrFail($id);
$user->name = $request->get('name');
$user->email = $request->get('emil');
if(!empty($request->get('password')) {
$user->password = $request->get('password');
}
$user->save();
诸如此类的东西,所以你正在检查PW是否也需要更新等等
基本上,您需要验证是否需要输入,您的方法会获取所有请求的值,并且无论它们是空的还是注释都会更新。您需要在不使用fill等的情况下单独更新db,因为它总是会将密码值设为空或非空,然后添加它,因此请尝试:
$user = $this->users->findOrFail($id);
$user->name = $request->get('name');
$user->email = $request->get('emil');
if(!empty($request->get('password')) {
$user->password = $request->get('password');
}
$user->save();
诸如此类的东西,所以你正在检查PW是否也需要更新等等
基本上,您需要验证是否需要输入,您的方法接受所有请求的值,并且无论它们是空的还是注释,都将更新