我第一次使用 Laravel,版本 6.2。我的代碼可以很好地更新數(shù)據(jù)庫(kù)上的表,但它在更新之前不驗(yàn)證數(shù)據(jù)。這是我第一次需要自己驗(yàn)證我的表單(不是默認(rèn)的 laravel auth),我認(rèn)為我缺少一些基本的東西來(lái)讓它工作。我正在嘗試使用當(dāng)前密碼 - 新密碼 - 確認(rèn)新密碼來(lái)制作典型的更改密碼表格。下面是我的路線,我的控制器和我的觀點(diǎn)。路線Route::get('/cambiarclave', 'Auth\ChangePasswordController@showChangeForm');Route::post('/cambiarclave', 'Auth\ChangePasswordController@changePassword')->name('cambiarclave');更改密碼控制器.phpclass 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'); }}
1 回答

蠱毒傳說(shuō)
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
你錯(cuò)過(guò)了這里執(zhí)行你的validator方法。您應(yīng)該添加如下代碼:
$validator = $this->validator($data);
if ($validator->fails()) {
return back()
->withErrors($validator)
->withInput();
}
后
$user = User::find(auth()->user()->id);
在你的控制器中運(yùn)行驗(yàn)證。
- 1 回答
- 0 關(guān)注
- 114 瀏覽
添加回答
舉報(bào)
0/150
提交
取消