Как получить только ключ массива с laravel проверочным сообщением? - PullRequest
0 голосов
/ 28 января 2020

У меня есть массив для проверки. Проверка работает отлично. Но я не могу вернуть правильное сообщение.

Мой массив запросов похож на

mobile = 'tom'=> '0011120', 'dick'=> null, 'harry'=>'001212'

Как видите, номер мобильного телефона равен нулю. Должен вернуть ошибку. 'the mobile number of dick is required.'

Я пытался,

$validator = Validator::make(request()->all(),
[
    'mobile.*' => 'required'
],
[
    'mobile.*.required' => 'the mobile number of :key is required.'
];

Когда я возвращаю, ошибка похожа на 'the mobile number of mobile.dick is required.' Как я могу удалить mobile.dick и получить только часть имени?

Ответы [ 2 ]

2 голосов
/ 28 января 2020

Я не думаю, что это возможно, так как они используют простые str_replace on: key и messageKey.

Вы можете немного переопределить это, используя собственную переменную, не удивительный код, но сработает:

$validator = Validator::make(request()->all(),
[
    'mobile.*' => 'required'
],
[
    'mobile.*.required' =>'the mobile number of :key is required.'
];

$errors = null;
if ($validator->errors()) {
    $errors = [];
    foreach ($validator->errors()->all() as $error) {
        $errors []= str_replace('mobile.', '', $error);
    }
}

// $errors will contain proprer message, or null if no error
dd($errors);
0 голосов
/ 28 января 2020

Попробуйте что-то вроде этого:

 'mobile.*.required' =>'the mobile number of '.str_replace('mobile.','',:key) .'is required.'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...