我第一次使用 Laravel,版本 6.2。我的代码可以很好地更新数据库上的表,但它在更新之前不验证数据。这是我第一次需要自己验证我的表单(不是默认的 laravel auth),我认为我缺少一些基本的东西来让它工作。
我正在尝试使用当前密码 - 新密码 - 确认新密码来制作典型的更改密码表格。下面是我的路线,我的控制器和我的观点。
路线
Route::get('/cambiarclave', 'Auth\ChangePasswordController@showChangeForm');
Route::post('/cambiarclave', 'Auth\ChangePasswordController@changePassword')->name('cambiarclave');
更改密码控制器.php
class ChangePasswordController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function showChangeForm()
{
return view('auth.cambiarclave');
}
protected function validator(array $data)
{
return Validator::make($data, [
'clave-actual' => ['required', 'string', 'min:6'],
'nueva-clave' => ['required', 'string', 'min:6', 'confirmed'],
]);
}
public function changePassword(request $request)
{
$data = $request->all();
$user = User::find(auth()->user()->id);
if (!Hash::check($data['clave-actual'], $user->password)) {
return back()->with('error', 'You have entered wrong password');
}
$user_id = $user;
$obj_user = User::find($user_id);
$obj_user->password = \Hash::make($request->input('nueva-clave'));
$obj_user->save();
auth()->logout();
return redirect('/ingreso');
}
}
蛊毒传说