$request->validate () 和 $this->validate () 有什么区别?

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

那 AppHttpRequests 里的 validate () 方法是从哪里来的?最终实现是相同的吗?为什么会有两种写法?(我知道 Validator::make() 是为了在 控制器外边用)

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

protected function validateLogin(AppHttpRequests $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('表单验证通过');
}
原文地址:https://www.cnblogs.com/caibaotimes/p/14022518.html