我想创建带有laravel 5的3字段(old_password,new_password,confirm_password)的表单.
视图
旧密码 :
{!! Form::password('old_password',['class' => 'form-control']) !!}
新密码 : {!! Form::password('password',['class' => 'form-control']) !!}
确认新密码 : {!! Form::password('verify_password',['class' => 'form-control']) !!}
用户注册时的控制器
public function postRegister(Request $request)
{
$rules = [
'email' => 'required|email|unique:users',
'confirm_email' => 'required|same:email',
'password' => 'required|min:8|regex:/^(?=\S*[a-z])(?=\S*[!@#$&*])(?=\S*[A-Z])(?=\S*[\d])\S*$/',
'verify_password' => 'required|same:password',
];
$messages = [
'email.required' => 'email tidak boleh kosong',
'password.required' => 'password tidak boleh kosong',
'password.min' => 'Password harus minimal 8 karakter',
'password.regex' => 'Format password harus terdiri dari kombinasi huruf besar, angka dan …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试为我的用户配置文件更改密码功能,我的所有输入都提交给控制器,但我认为我的功能逻辑可能有问题?
尝试对函数进行转储请求并成功返回转储。但是在围绕验证过程包装验证变量时,不会返回转储。请求重定向回带有表单数据的个人资料页面。
控制器
public function updatePassword(Request $request)
{
$this->validate($request, [
'old_password' => 'required',
'new_password' => 'required|confirmed',
'password_confirm' => 'required'
]);
$user = User::find(Auth::id());
if (!Hash::check($request->current, $user->password)) {
return response()->json(['errors' =>
['current' => ['Current password does not match']]], 422);
}
$user->password = Hash::make($request->password);
$user->save();
return $user;
}
Run Code Online (Sandbox Code Playgroud)
看法
<form method="POST" action="{{ route('update-password') }}">
@csrf
@method('PUT')
<div class="form-group row">
<label for="old_password" class="col-md-2 col-form-label">{{ __('Current password') }}</label>
<div class="col-md-6">
<input id="old_password" name="old_password" type="password" class="form-control" required autofocus>
</div>
</div>
<div class="form-group row">
<label for="new_password" …Run Code Online (Sandbox Code Playgroud)