【问题标题】:Laravel: Add custom validation class make fail attributes() method in Request classLaravel:在 Request 类中添加自定义验证类 make fail attributes() 方法
【发布时间】:2016-07-06 09:04:08
【问题描述】:

我在请求类中有代码:

public function rules()
{
    return [
        'id' => 'required|check_xxx',
    ];
}

public function attributes()
{
    return [
        'id' => 'AAA',
    ];
}

如您所见。我有自定义验证方法名称 check_xxx。此方法在类 CustomValidator 中。

所以,我有代码:

class ValidationServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->validator->resolver(function ($translator, $data, $rules, $messages) {
            return new CustomValidator($translator, $data, $rules, $messages);
        });
    }
}

必填的错误信息是:请输入:属性

但我收到消息:请输入id,(TRUE 为:请输入AAA)

我发现$this->app->validator->resolver使得Request中的attributes()方法没用。

我该如何解决这个问题?谢谢。

【问题讨论】:

    标签: validation laravel attributes


    【解决方案1】:

    我在Laravel 5.2 中遇到了这个问题,但找到了如下的快速解决方案。在下面的示例中,您将直接在 APP Provider 中添加规则。

    添加规则的文件:app/Providers/AppServiceProvider.php

    public function boot()
        {
            // ....
    
            #/
            #/ Adding rule "even_number" to check even numbers.
            #/ 
            \Validator::extend('even_number', function($attribute, $value, $parameters, $validator) {
                  $value = intval($value);
                  return ($value % 2) == 0);
    
            // ...
    
        }
    

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2013-11-05
      • 2016-01-23
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      相关资源
      最近更新 更多