我的模型中有验证规则:
public function rules()
{
return array(){
array('order', 'required'),
}
}
我的订单视图中有一个输入文本元素:
input type="text" name="order1"
当我按下按钮时,我的输入文本元素增加了,所以现在我有2个输入文本元素,名称不同。 e.g:
input type="text" name="order1"
input type="text" name="order2"
我的问题是: 如何动态编辑验证规则,因此当“order1”或“order2”为空时,会有验证消息。感谢。
答案 0 :(得分:3)
我会对问题采取不同的方法。而不是使用name = 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;
}
}
}
上面的代码是在这里写的,未经测试,但应该密切关注我的想法。