【发布时间】:2018-04-30 06:26:48
【问题描述】:
默认情况下,Laravel 的基本控制器类使用 ValidatesRequests trait,它提供了一种方便的方法来使用各种强大的验证规则来验证传入的 HTTP 请求
是的,阅读代码,App\Http\Controllers\Controller 实际上使用了ValidatesRequests trait。而ValidatesRequests 有一个validate 方法。
对我来说真正奇怪的是,在文档中的其他任何地方,validate 方法都在 $request 对象上调用。它以这种方式工作。我可以使用以下代码验证表单:
public function store()
{
$attributes = request()->validate([
'name' => 'required|string|max:255',
]);
// ...
}
但我在 Request 类上看不到任何 validate 方法。文件开头只是一个奇怪的注释行:
/**
* @method array validate(array $rules, array $messages = [], array $customAttributes = [])
*/
所以有两件事:
- 我不知道在 Laravel 文档中应该信任什么。
- 我不明白验证如何在
$request对象上工作。
我的实际问题是:
如果我通过$request 对象使用validate 方法,我从文档中粘贴的初始报价是否仍然正确?如果是这样,它是如何工作的?
【问题讨论】:
标签: php laravel laravel-5 laravel-5.5 laravel-validation