首页 > 解决方案 > Laravel 自定义验证规则。如何添加使用字符串表示而不是使用类名来传递规则的可能性?

问题描述

我是什么意思:

如文档所示:

...
'field' => [
 'required',
 'numeric',
 new MyCustomRule
],
...

但是,如果我想在一个字符串中传递它并带有一些参数||选项签名(因为它是使用默认的“存在”规则实现的,我可以选择传递连接、表、字段、列等)怎么办?

...
'field' => 'required|numeric|my_rule:param1.param2,option1,option2',
...

我应该在哪里定义签名?谢谢!

标签: laravelvalidationlaravel-5

解决方案


在里面扩展你的验证器App\Providers\AppServiceProvider

例如:

Validator::extend('rule', function (string $attribute, string $value, array $parameters) {
    dump($attribute, $value, $parameters);

    return $attribute == $value;
});

在此处查看一个工作示例。


推荐阅读