简体   繁体   中英

How to validate multi-dimensional array in fuelphp?

the form input is like below:

<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][]">

and the validate rule is this:

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

it seems the validation rule above doesn't work!How to validate such a multi-dimensional array? thanks a lot!

Edit1:

of course,there is another variable item_sku_id to make every order_item unique.

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

Solved,In this way, the multi-dimensional array can be validated.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM