Как проверить многомерный массив в fuelphp?

ввод формы выглядит следующим образом:

<input type="input" name="order_item[quantity][]" value="1">
<input type="hidden" value="22" name="order_item[item_sku_id][]">

<input type="input" name="order_item[quantity][]" value="1">
<input type="hidden" value="25" name="order_item[item_sku_id][]">

<input type="input" name="order_item[quantity][]" value="1">
<input type="hidden" value="23" name="order_item[item_sku_id][]">

<input type="input" name="order_item[quantity][]" value="1">
<input type="hidden" value="65" name="order_item[item_sku_id][]">

и правило проверки таково:

$valid->add('order_item[quantity]', __('model.order_item.quantity'))   
->add_rule('required');

кажется, что приведенное выше правило проверки не работает! Как проверить такой многомерный массив? большое спасибо!

Редактировать1:

конечно, есть еще одна переменная item_sku_id, чтобы сделать каждый заказ_элемент уникальным.


person makenai    schedule 26.10.2014    source источник
comment
Как узнать, по какому элементу заказа проверять? Ваша запись формы «order_item [количество]» не имеет никакого представления о том, из какой записи она была получена. Как насчет: name=order_item[количество][$orderId][]? или что-то подобное?   -  person Ryan Vincent    schedule 26.10.2014
comment
есть ! Добавил, может посоветуете?   -  person makenai    schedule 27.10.2014


Ответы (1)


    if (isset($data['order_item'])) {
        foreach ($data['order_item']['quantity'] as $index => $order_item) {
            $valid->add('order_item[quantity][' . $index . ']', __('model.order_item.quantity'))
                ->add_rule('valid_string', array('numeric'))
                ->add_rule('required');
            $valid->add('order_item[item_sku_id][' . $index . ']', __('model.order_item.item_sku_id'))
                ->add_rule('valid_string', array('numeric'))
                ->add_rule('required');
        }
    }

Решено, таким образом можно проверить многомерный массив.

person makenai    schedule 28.10.2014