Получить текущий индекс в массиве-проверка

#laravel #laravel-8 #laravel-validation

Вопрос:

Я получил входные данные, которые содержат массив объектов. Теперь я хотел бы проверить его, но одна часть проверки зависит от другого элемента объекта, поэтому мне нужен его индекс:

 [
    'items.myarray.*.owner_id' => 'numeric|exists:AppModelsOwner',
    'items.myarray.*.key'      => ['nullable', 'string', 'min:20', 'max:20', 'exists:AppModelsInvitation,key',
                           new KeyIsValid(Owner::findOrFail(request()->input('items.*.owner_id')))],
];
 

Конечно request()->input('items.myarray.*.owner_id') , это не работает, но я ищу способ передать owner_id текущий объект для этой проверки.

Ответ №1:

Вам не нужно *, если ваш запрос содержит $items[‘owner_id’], вы можете просто сделать items.owner_id => 'validation-rules-here'

Комментарии:

1. У каждой записи массива могут быть разные owner_id s, поэтому, к сожалению, это не то, что я ищу. Но я понимаю вашу точку зрения, в моем первоначальном вопросе это было неясно.