[英]how to update existing user table values with password confirmtion in laravel
我正在使用Laravel 5.6,并将以系统管理员身份更新我的用户表值( name
, email
, password
)。
刀片文件
<form action="{{route('users.update',$user->id)}}" method="POST">
{{method_field('PUT')}}
{{csrf_field()}}
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" name="name" value="{{$user->name}}" >
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="text" class="form-control" id="email" name="email" value="{{$user->email}}">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<div class="form-group">
<label for="password_confirmation">Confirm Password</label>
<input type="password" class="form-control" id="password_confirmation" name="password">
</div>
<button type="submit" class="btn btn-primary">Edit User</button>
</form>
和我的控制器,
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$user->name = $request->name;
$user->uservalue = $request->uservalue;
$user->email = $request->email;
$user->password = bcrypt($request->input('password'));
$user->save();
return view('users.show')->withUser($user);
}
问题
我的密码确认不起作用
这意味着我可以输入密码而无需确认和/或输入错误的确认密码。 我该如何解决这个问题?
您必须添加密码以确认验证。 为此,您的第二个密码字段必须称为password_confirmation(或foo和foo_confirmation)
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$request->validate([
'password' => 'sometimes|min:6|confirmed'
]);
$user->name = $request->name;
$user->uservalue = $request->uservalue;
$user->email = $request->email;
$user->password = bcrypt($request->input('password'));
$user->save();
return view('users.show')->withUser($user);
}
您可以按照此处的说明添加更多验证字段。 如果验证失败,浏览器将把用户带回到更新页面。 错误在laravel errorbag中,在您的视图中为$errors
。
sometimes
意味着,如果有输入,则需要遵循以下规则。 当您要更新用户信息时,如果访问者不想更新密码,可以将密码字段留空。 在更新用户输入之前,请取消设置密码字段(如果为空)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.