自定义Laravel注册验证器

时间:2018-02-04 07:54:16

标签: php laravel validation

我正在修饰由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()?它来自哪里?

2 个答案:

答案 0 :(得分:1)

添加这些行

use Validator;
use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
use lluminate\Support\Collection;

答案 1 :(得分:0)

如果验证失败,

->validate()用于自动重定向。

来自文档

Automatic Redirection

  

如果您想创建验证器实例   手动但仍然利用提供的自动重定向   通过请求的验证方法,您可以调用validate方法   现有的验证器实例。如果验证失败,用户将会   自动重定向,或者在AJAX请求的情况下,重定向   回复将被退回:

语法是

Validator::make($request->all(), [
    'body' => 'required',
])->validate();

在您的情况下,您要发送Validator个实例并在之后调用validate()