Не удается проверить вложенный массив в laravel - PullRequest
0 голосов
/ 07 октября 2018

При проверке вложенных массивов с теми же ключами и правилами будет получено неверное сообщение об ошибке, например, если правила:

$rules = [ 'elem.*.test' => 'required', 'elem.*.subitem.test' =>
'required', ];

и сообщения:

$messages = [ 'elem.*.test.required' => 'top level item required', 'elem.*.subitem.test.required' => 'sub item required', ];

Ответы [ 2 ]

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

Это известная проблема: https://github.com/laravel/framework/issues/22499

Вы можете исправить это, поменяв местами сообщения:

$messages = [
    'elem.*.subitem.test.required' => 'sub item required',
    'elem.*.test.required' => 'top level item required'
];
0 голосов
/ 07 октября 2018

Str::is() вызывается в FormatsMessages :: getFromLocalArray ().

Вы не можете использовать

str_replace('*', '[^.]*', $sourceKey) 

, потому что оно экранируется preg_quote ().

Вы можете добавить

$wildcard = '.*'  

параметр к Str::is() и переопределить его с помощью '[^.]*'

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