$request->validate () 和 $this->validate () 有什么區別?


$this->validate 是因為所有控制器都使用了 ValidatesRequests Trait,所以可以使用這個 Trait 中提供的 validate() 方法

那 \App\Http\Requests 里的 validate () 方法是從哪里來的?最終實現是相同的嗎?為什么會有兩種寫法?(我知道 Validator::make() 是為了在 控制器外邊用)

Laravel 代碼如下:
$request->validate()

protected function validateLogin(\App\Http\Requests $request)
{
    $request->validate([ // <---- 看這行
        'username' => 'required|string',
        'password' => 'required|string',
        'captcha' => ['required', 'captcha'],
    ], [
        'captcha.required' => '驗證碼不能為空',
        'captcha.captcha' => '請輸入正確的驗證碼',
    ]);
}

$this->validate()

public function form(Request $request, $id)
{
    $this->validate($request, [ // <---- 看這行
        'title' => 'bail|required|string|between:2,32',
        'url' => 'sometimes|url|max:200',
        'picture' => 'nullable|string'
    ]);

    return response('表單驗證通過');
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM