2012-02-09 3 views
1

프레임 Yii 프레임 워크에서 abort 어떤 further validation의 규칙 중 하나가 FALSE을 반환하면 어떻게합니까? 내가 달성하기 위해 노력하고 무엇Yii : 규칙 중 하나가 거짓을 반환 한 후 중간에서 모델 유효성 검사를 어떻게 중단합니까?

이다 : 우리가 모델이 유효성 검사를 통과하지 못한 것을 알고

1) 정지 불필요한 MySQL의 쿼리 후.

2) 컨트롤러에서 수동으로 정렬하지 않고 2) 웹 사용자의 오류 메시지를보다 쉽게 ​​이해할 수 있습니다.

도움을 주셔서 감사합니다.

+0

당신은 유효성 검사() 메서드를 사용하여 유효성 검사를하려는 거죠? 만약 당신이 그렇다면, 나는 그것에 대해 확실하지 않은 validate 메소드에 의해 수행 된 쿼리가 있다고 생각하지 않는다. –

+1

나는'validate()'와'save()'검증을하고있다. 많은 유효성 검사는 데이터베이스를 쿼리하는 커스텀 메소드이며, 내장 MySQL의 쿼리 ('unique','exists') 중 일부는 MySQL 쿼리를 수행합니다. – Sebastian

+0

나는 정정 당했고 일부는 분명히 쿼리를한다. –

답변

3

요약 : 전역 설정이나 해결책이 없습니다. CActiveRecord :: validate()를 보면 모든 유효성 검사기가 호출되어 실행되는 것을 볼 수 있습니다.

동일한 특성에 대해 여러 유효성 검사를 실행할 수 없습니다. 모든 유효성 검사 규칙에 대해 skipOnError = true를 설정해야합니다. 이미 현재의 속성에 대한 유효성 검사 오류가있는 경우이 유효성 검사 규칙은 생략할지 여부를

http://www.yiiframework.com/doc/api/1.1/CValidator/#skipOnError-detail

. 기본값은 false입니다.

글로벌 옵션이 Yii에 추가 될 수 있다고 생각합니다.

0

고맙습니다! 이 스레드 검색 사용자의

:

validate() 방법 - 사용자 정의 AR 클래스에서 확장 할 수 있습니다 - yii/framework/base/CModel에 위치하고 있으며, 라인 (150)