@andreyqin

Laravel: почему валидатор не пропускает?

Добрый день. Принимаю массив вида:
$array = [
    'data' = [
        0 => [
            'title' => 'Название',
            'price' => 700,
            'quantity' => 5
        ],
        1 => [
            'title' => 'Название 2',
            'price' => 800,
            'quantity' => 3
        ],
        2 => [
            'title' => 'Название 3',
            'price' => 900,
            'quantity' => 2
        ] 
    ];
];


И обработчик этого массива:
public function myFunction()
{
    $input = Input::get('data');

    $validator = Validator::make($input, [
        'title'    => 'required',
        'price'    => 'required|numeric',
        'quantity' => 'required|numeric'
    ]);

    if ($validator->passes()) {
        // Сюда не попадает
    } else {
        // А вот сюда попадает
    }
}

Вопрос - почему не проходит валидацию?
  • Вопрос задан
  • 2323 просмотра
Пригласить эксперта
Ответы на вопрос 2
У вас data – массив.
Насколько знаю, валидатор не делает обход массива. Думаю, вам нужно сделать цикл, обходящий массив, и уже в нем делать валидацию конкретного элемента.
Ответ написан
miraage
@miraage
Старый прогер
Вариант со Stackoverflow.

Другой вариант:
Итерация коллекции до первой ошибки, либо по всей - как Вам необходимо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы