代码之家  ›  专栏  ›  技术社区  ›  LINKeRxUA

Laravel自定义验证规则。如何增加使用字符串表示而不是使用类名传递规则的可能性?

  •  0
  • LINKeRxUA  · 技术社区  · 6 年前

    我的意思是:

    如文档所示:

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

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

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

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Hilmi Erdem KEREN    6 年前

    在内部扩展验证程序 App\Providers\AppServiceProvider

    例如:

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

    查看一个工作示例 here .