亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的表正在更新,但在 Laravel 6 更新之前未驗證

我的表正在更新,但在 Laravel 6 更新之前未驗證

PHP
偶然的你 2022-07-09 10:59:20
我第一次使用 Laravel,版本 6.2。我的代碼可以很好地更新數據庫上的表,但它在更新之前不驗證數據。這是我第一次需要自己驗證我的表單(不是默認的 laravel auth),我認為我缺少一些基本的東西來讓它工作。我正在嘗試使用當前密碼 - 新密碼 - 確認新密碼來制作典型的更改密碼表格。下面是我的路線,我的控制器和我的觀點。路線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 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

你錯過了這里執行你的validator方法。您應該添加如下代碼:


$validator = $this->validator($data);


if ($validator->fails()) {

    return back()

        ->withErrors($validator)

        ->withInput();

}


$user = User::find(auth()->user()->id);

在你的控制器中運行驗證。


查看完整回答
反對 回復 2022-07-09
  • 1 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號