我正在修饰由validator()
命令创建的php artisan auth
方法。它看起来像这样:
protected function custom_validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'password' => 'required|string|min:6',
'cell_phone' => 'required|numeric',
]);
}
这是我自己的create()
方法:
public function custom_create(Request $request)
{
$this->custom_validator($request->all())->validate();
dd('validation done ...');
}
它按预期工作,一切正常。
我的问题: ->validate()
方法中的custom_create()
是什么?正如我所说,它有效,我根据Laravel默认编写它。但我不明白。
我相信这已足够$this->custom_validator($request->all())
。它调用同一类中的custom_validator()
方法。那是什么->validate()
?它来自哪里?
答案 0 :(得分:1)
添加这些行
use Validator;
use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
use lluminate\Support\Collection;
答案 1 :(得分:0)
->validate()
用于自动重定向。
来自文档
如果您想创建验证器实例 手动但仍然利用提供的自动重定向 通过请求的验证方法,您可以调用validate方法 现有的验证器实例。如果验证失败,用户将会 自动重定向,或者在AJAX请求的情况下,重定向 回复将被退回:
语法是
Validator::make($request->all(), [
'body' => 'required',
])->validate();
在您的情况下,您要发送Validator
个实例并在之后调用validate()
。