2014-10-26 47 views
1

表單輸入是象下面這樣:如何驗證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獨特。

+0

您如何知道要驗證哪個訂單項?您的表單輸入'order_item [quantity]'條目並不知道它來自哪條記錄。如何:name =「order_item [quantity] [$ orderId] []」?或類似的東西?有 – 2014-10-26 17:22:08

+0

!我已經添加了它,你能給一些建議嗎? – makenai 2014-10-27 01:30:02

回答

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

解決了,以這種方式,可以驗證多維數組。