表单输入如下:
<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都是唯一的。
答案 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');
}
}
解决,通过这种方式,可以验证多维数组。