Здравствуйте, может кто-нибудь подскажет, в чем смысл этой проверки? особенно "*".
$rules = [
'user.*.username' => 'required|distinct',
];
$message = [
'user.*.username.required' => 'Username name is required.'
];
$this->validate($request, $rules, $message);
'*' для каждого значения массива. 'user.*.username' => 'required|distinct', будет проверять, что каждое имя пользователя в массиве пользователей является обязательным и отличным
Спасибо @MagnusEriksson.






$ this - текущая ссылка на класс, в котором используется свойство ValidatesRequests, в котором присутствует validate (). Ref. Laravel 5.1 В laravel 5.6 вам не нужно $ this.
Здесь * означает все. Что я имею в виду под всем?
В запросе идет массив пользователей, например:
$user = [
[
'username' => 'user1',
//... other fields
],
[
'username' => 'user2',
//... other fields
],
//... so on
];
Так,
'user.*.username' => 'required|distinct',
означает, что username пользователей все этого пользовательского массива (в запросе) является обязательным и отличным. Вы можете рассматривать это как умный и динамичный способ сделать следующее:
'user.0.username' => 'required|distinct',
'user.1.username' => 'required|distinct',
//... so on
Это для проверочных массивов. Подробнее об этом можно прочитать в документации.