2013-04-03 2 views
0

업데이트 규칙 모델에서 필드를 비활성화하려고하는데 오류가 있습니다.규칙 모델에서 필드 사용 안 함

내가 좋아하는 시도 :

array('date', 'constraint', 'readOnly'=>true, 'on'=>'update'), 

하지만 난이 오류가 오전 :

"(constraint.php가) 포함 : 그런 파일이나 디렉토리 : 스트림을 열지 못했다"

I을 htmloptions 사용하여보기에서 사용할 수 없도록 설정할 수 있지만 업데이트시 5 개 필드를 해제해야하기 때문에 모델에서해야합니다.

어떻게하면됩니까?

array('date', 'constraint', 'readOnly'=>true, 'on'=>'update'), 

이 라인은 다음을 수행한다 : 사전

+0

이 오류는 'Constraint'유효성 검사기를 찾을 수 없기 때문에 발생합니다. 필드를 비활성화하는 대신 다음 단계에서 값이 필요한 경우 일반 텍스트를 사용하여 값과 숨김 필드를 표시 할 수 있습니다. – topher

+0

수정을 피하기 위해 비활성화해야하지만 표시되도록해야합니다. – user468891

+0

여기 '제약 조건'유효성 검사는 http://www.yiiframework.com/forum/index.php/topic/4570-set-some-active-record-as-read-only/page__view__findpost__p__24179에서 읽을 수 있습니다. 그 글은 여러분이 하나를 창조해야한다고 말하고 있습니다. 나는이 일을 할 수 없었습니다. – russellfeeed

답변

5

존재하지 않는 검증과 규칙을 선언, 그래서 당신이 오류를 가지고 정상에

들으을 적용 유효성 검사기 constraintdate 필드의 update 시나리오의 readOnlytrue으로 설정하십시오.

유효성 검사기 constraint은 Yii에 기능을 내장하고 있지 않으므로 작성하지 않았다면 존재하지 않습니다!

문서 :

편집 : 당신이 읽기 전용 값을 볼 수 있듯이

<?php 
    echo $form->textField(
     $model, 
     'email', 
     array('readonly'=>($model->scenario == 'update')? true : false) 
    ); 
?> 

:는 양식에서 당신은 같은 뭔가를 할 수 의존 할 것이다 시나리오.

+0

네, 맞습니다. _form에 array ('readonly'=> true)를 사용하고 있지만 좀 더 우아한 다른 형식이 있습니까? – user468891

+0

험 나는 네가하는 일이 괜찮다고 생각한다. 솔루션에 대한 편집을 참조하십시오! – darkheir

+0

나는 ($ model-> isNewRecord) {...' ' user468891