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

在laravel中扩展验证器时,是否有方法附加自定义验证消息?

  •  2
  • v1shva  · 技术社区  · 7 年前

    Validator::extend('phone_number', function($attribute, $value, $parameters)
        {
           // is there anyway I could define a error message here, if this validation fails,
            if (strlen($value) === 9)
            {
                if (substr($value, 0, 1) === '0')
                {
                    return false;
                }
            }
            else
            {
                if (substr($value, 0, 1) != '0')
                {
                    return false;
                }
            }
    
            return true;
        });
    

    我目前已经将这段代码放在boot方法中,在文档中他们说有一种方法可以定义自定义消息,如下所示,但我真的不理解。

    public function boot()
    {
    
    Validator::extend(...);
    
    Validator::replacer('foo', function ($message, $attribute, $rule, $parameters) {
        return str_replace(...);
    });
    

    }

    2 回复  |  直到 7 年前
        1
  •  1
  •   Maraboc    7 年前

    您可以通过将第三个参数添加到 extend 方法如下:

    Validator::extend('phone_number', function($attribute, $value, $parameters) {
    
        if (strlen($value) === 9)
        {
            if (substr($value, 0, 1) === '0')
            {
                return false;
            }
        }
        else
        {
            if (substr($value, 0, 1) != '0')
            {
                return false;
            }
        }
    
        return true;
    }, 'Your custom message goes here'); // <--- HERE
    
        2
  •  0
  •   Jan Wytze    7 年前

    resources/lang/en/validation.php .

    另请查看此页面: https://laravel-news.com/laravel-5-5-custom-validator-rules

    这是创建自定义验证规则的更好方法。