Есть ли способ прикрепить пользовательское сообщение проверки при расширении валидатора в laravel?

В настоящее время я реализовал следующую пользовательскую проверку, но я не знаю, как прикрепить собственное сообщение, если проверка не удалась. Чтобы уточнить, мне нужно определить сообщение об ошибке при расширении валидатора

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;
    });

В настоящее время я поместил этот код в метод загрузки, и в документации говорится, что есть способ определить собственное сообщение следующим образом, но я действительно этого не понимаю.

public function boot()
{

Validator::extend(...);

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

}


person v1shva    schedule 21.09.2017    source источник
comment
Вы можете просто добавить третий аргумент для расширения Validator::extend('phone_number', function($attribute, $value, $parameters){//....}, 'You custom message');;)   -  person Maraboc    schedule 21.09.2017
comment
это то, что ты ищешь?   -  person Maraboc    schedule 21.09.2017
comment
Да, это оно. Не могли бы вы опубликовать это как ответ? И большое спасибо   -  person v1shva    schedule 21.09.2017


Ответы (2)


Вы можете указать свое сообщение, добавив третий параметр к методу 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
person Maraboc    schedule 21.09.2017

Вы можете поместить свои пользовательские сообщения правил проверки в resources/lang/en/validation.php.

Также взгляните на эту страницу: https://laravel-news.com/laravel-5-5-custom-validator-rules

Это более удобный способ создания собственных правил проверки.

person Jan Wytze    schedule 21.09.2017
comment
Да, я знаю об этом методе, но сейчас я не могу его использовать, поэтому ищу альтернативу. - person v1shva; 21.09.2017