2011-08-19 5 views
1

내 응용 프로그램에 사용자를위한 Active Record Model이 있으며이 모델을 사용자 등록 양식으로 다시 사용하고 싶습니다. 사용자 등록 양식에는 암호 및 암호 확인 (예 : 소금 및 해시 저장)과 같이 데이터베이스에 저장하지 않으려는 몇 가지 필드가 있습니다. 기존의 사용자 활성 레코드 모델로이를 수행 할 수있는 방법이 있습니까? 아니면 사용자 등록 양식에 대해 별도의 양식 모델을 만들어야합니까?테이블에없는 속성으로 CActiveRecord를 만드는 방법은 무엇입니까?

답변

4

모델에서 변수를 선언 한 다음 언급 된 @Dan과 같은 시나리오 속성을 사용하여 규칙을 추가 할 수 있습니다. 같을 것이다

class User extends CActiveRecord 
{ 
    public $password_confirm; 
    public $password_hash; 
    ... 

및 모델의 규칙 :

당신의 모델은 같을 것입니다

array('password, password_confirm', 'required', 'on'=>'register') 

당신은 또한 CCompareValidator 규칙을 사용할 수 있습니다 또는 유사 확인 암호 필드가 일치합니다. here을 참조하십시오.

+0

이 새로운 속성을 원래의 속성과 반복하는 방법을 생각해보십시오. foreach를 사용하면 테이블 속 성만 반환됩니다. S –

+0

@ldg, 모든 속성을 가져 오는 방법, var_dump ($ model-> attributes); exit; 테이블 속성 만 다시 실행합니다. 정적 인 것이 아닙니다. 컨트롤러의 모든 속성을 얻는 방법? – DS9

관련 문제