0

我的模型中有一个验证规则:

public function rules()
{
  return array(){
   array('order', 'required'),
  }
}

我的订单视图中有一个输入文本元素:

input type="text" name="order1"

当我按下一个按钮时,我的输入文本元素增加了,所以现在我有 2 个不同名称的输入文本元素。例如:

input type="text" name="order1"
input type="text" name="order2"

我的问题是:如何动态编辑验证规则,所以当“order1”或“order2”为空时,会有一条验证消息。谢谢。

4

1 回答 1

3

我会有不同的方法来解决这个问题。而不是输入名称= order1,order2,orderN,而是有一个这样的数组<input type="text" name="orders[]" />在模型中,总是期望订单数组,循环遍历它,如果有任何项目没有验证,添加一个错误。

class SomeModel
{
 public $orders;
 public function rules()
 {
  return array(
   array('orders', 'validateOrders'),
  );
 }

 public function validateOrders($attribute, $params)
 {
  foreach($this->orders as $order)
   if (empty($order)) {
    $this->addError('orders', 'There is an empty order');
    break;
   }
 }
}

上面的代码是在这里写的,未经测试,但应该能很好地展示我的想法。

于 2011-08-23T15:38:02.310 回答