如何验证数组中的模型字段

时间:2014-04-19 06:25:42

标签: php yii

我有三个具有相同id的文本字段。用户不能填写三个文本框。他们可能填写一个或两个。现在我如何使用yii模型规则验证文本框。

<?php echo $form->textArea($model,'taskname[]',array('class'=>'bg-focus form-control','value'=>$edit_info['varProjectname'])); ?>

2 个答案:

答案 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');

  }
}