如何验证fuelphp中的多维数组?

时间:2014-10-26 15:12:04

标签: php 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');

似乎上面的验证规则不起作用!如何验证这样的多维数组? 非常感谢!

EDIT1:

当然,还有另一个变量item_sku_id可以使每个order_item都是唯一的。

1 个答案:

答案 0 :(得分:0)

    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');
        }
    }

解决,通过这种方式,可以验证多维数组。