我有三个具有相同id的文本字段。用户不能填写三个文本框。他们可能填写一个或两个。现在我如何使用yii模型规则验证文本框。
<?php echo $form->textArea($model,'taskname[]',array('class'=>'bg-focus form-control','value'=>$edit_info['varProjectname'])); ?>
答案 0 :(得分:0)
那你的桌子是什么?
您可以在控制器中实现此功能,您可以在其中检查填充的字段数。例如,使用if
语句来检查,如果没有填充两个字段,则使用
Yii::app()->user->setFlash();
Yii::app()->end();
关于Yii::app()->user->setFlash()
你可以在这里阅读
http://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages/
答案 1 :(得分:0)
我不完全明白你说“相同的id”然后你的问题是“数组中的模型字段”。假设您正在讨论“相同模型”中的三个字段,您可以使用自定义验证,如下所示:
使用自定义验证方法:例如[注意:这会给所有三个字段添加错误]
在你的规则中:
...
array('fieldOne, fieldTwo, fieldThree', 'validateThreeFields'),
...
public function validateThreeFields($attribute, $params) {
// check if all fields empty
if ((empty($this->fieldOne) && empty($this->fieldTwo) && empty($this->fieldThree))
// or if none are empty
|| (!empty($this->fieldOne) && !empty($this->fieldTwo) && !empty($this->fieldThree))) {
$this->addError($attribute, 'Your error message');
}
}