Laravel:用户定义的方法在Request中有效吗?

时间:2016-03-15 06:08:14

标签: validation laravel callback user-defined

我使用Laravel并在Request:

中验证代码
class InformationsRequest extends Request
{
    // validate rule
    public function rules()
    {
        return [
            'title' => 'required|max:2000',
            'description' => 'required|max:5000'
        ];
    }

    // custom message
    public function messages()
    {
        return [
            'title.required' => 'aaa',
            'description.required' => 'bbb',
        ];
    }
}

今天,请帮助我2分:

  1. 我如何进行用户定义的验证。 (checkXXX方法)
  2. 方法checkXXX可能有1个参数,2个参数.....

    public function rules()
    {
        return [
            'title' => 'required|max:2000|checkXXX',
            'description' => 'required|max:5000'
        ];
    }
    
    1. checkXXX方法的自定义消息

1 个答案:

答案 0 :(得分:0)

您可以在服务提供商中添加自定义验证程序规则。 There's more information on this in the docs

Validator::extend('checkXXX', function ($attribute, $value, $parameters, $validator) {
    return $attribute === true;
});

如果属性验证失败,只需从回调中返回false。

然后,在lang个文件中提供自定义消息,或者从messages()方法返回一个。

return [
    'title.checkXXX' => 'The :field failed the checkXXX rule.'
];