2014-04-19 2 views
0

동일한 id를 가진 세 개의 텍스트 필드가 있습니다. 사용자가 세 개의 텍스트 상자를 채우지 않아야합니다. 하나 또는 둘을 채울 수 있습니다. 이제 yii 모델 규칙을 사용하여 텍스트 상자의 유효성을 검사 할 수 있습니다.배열의 모델 필드 유효성을 검사하는 방법

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

당신이 빈 경우 상자를 확인하거나 다른 PARAM을 확인하기 위해 요구하는 규칙에

? – nosthertus

+0

세 개의 상자가 모두 비어 있으면 세 개의 상자에 대한 유효성 검사 메시지가 표시됩니다. 사용자가 상자를 떠났을 때 유효성 검사 메시지를 표시 할 필요가 없음을 의미합니다. – usersk

답변

0

그럼 테이블이 무엇입니까? 컨트롤러에서 얼마나 많은 필드를 채울 수 있는지 확인할 수 있습니다. 다음 예를 들어 확인 if 문을 사용하고,이 작성되지 아르네 경우이 개 필드는 "동일한 ID"를 말할 때 내가 완전히 이해하지 않는 당신이 여기 http://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages/

0

을 읽을 수 Yii::app()->user->setFlash()에 대해

Yii::app()->user->setFlash(); 
Yii::app()->end(); 

를 사용하고 귀하의 질문에 "배열의 모델 필드"라고합니다. '동일한 모델'의 세 가지 필드에 대해 이야기한다고 가정하면 아래와 같이 맞춤 인증을 사용할 수 있습니다.

맞춤 인증 방법을 사용합니다. [참고 :이 모든 세 개의 필드에 오류를 추가합니다] :

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

    } 
} 
관련 문제