Номер / позиция массива в пользовательских сообщениях проверки Laravel - PullRequest
0 голосов
/ 26 октября 2018

При проверке массивов в Laravel и использовании пользовательских сообщений об ошибках, есть ли способ получить доступ к номеру / позиции массива, который вызывает ошибку проверки?

Попытка манипулировать: attribute или: key в массиве сообщений запроса не работает, так как заполнители позже переводятся (читай: они не являются фактическими переменными)

Я пытаюсь представить сообщение как:

object.property.*.required => 'The property on object # is required'

В противном случае вы получите что-то вроде:

object.property.3 is required

Я хотел бы взять номер, чтобы представить более дружелюбное и более наглядное сообщение.

1 Ответ

0 голосов
/ 26 октября 2018

Ну, это может быть достигнуто методом replacer на фасаде Validator.Добавьте метод replacer in AppServiceProvider@boot.

//...

public function boot()
{           
    Validator::replacer('required', function ($message, $attribute, $rule, $parameters) {
        if (str_contains($message, ':nth') && preg_match("/\.(\d+)\./", $attribute, $match)) {
            return str_replace(":nth", $match[1]+ 1, $message);
        }

        return $message;
    });
}

//...

Настраиваемое сообщение проверки для атрибута должно содержать держателя поля :nth

object.property.*.required => 'The property on object :nth is required'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...