【发布时间】:2019-10-20 03:14:32
【问题描述】:
我在 laravel.com 网站的文档中找不到 validate() 和 validated() 函数之间的不同定义。
但是在Validator接口文件中,我读到了函数的注释如下:
/**
* Run the validator's rules against its data.
*
* @return array
*/
public function validate();
/**
* Get the attributes and values that were validated.
*
* @return array
*/
public function validated();
我确实了解这些 cmets,但是当我编写代码并测试这两个函数时,我没有发现任何区别。两者的行为似乎相同:
- 验证数据。
- 如果失败,将用户重定向到他们的上一个页面。
- 如果成功,则以数组形式返回经过验证的数据。
那么,这两个函数在 Laravel 5.8 中有什么区别呢?
在我的例子中,我使用如下验证,因为我不想在验证失败时将用户重定向回他们的上一页。
$validator = validator($array_data, $array_rules, $array_message);
if ($validator->fails()) {
// Do something
} else {
$validated_data = $validator->validate();
// Here I am not sure if I should use the validated() function, because I do not see the difference between these two functions.
// $validated_data = $validator->validated();
}
【问题讨论】:
-
旁注:我真的很努力避免直接调用验证器。考虑改用 FormRequest 类。
标签: php validation laravel-5 laravel-5.8