2011-11-01 2 views
0

등록 모델 (로그인, 비밀번호, 이메일, 모바일 필드가 있음)을 가지고 있으며 로그인 액션에서 등록 (로그인 및 비밀번호 등)의 일부 필드를 사용하고 싶습니다. 그것. 어떻게 모델 필드를 재사용 할 수 있으며 또한 시나리오를 기반으로 필드를 검증 할 수 있습니다.시나리오를 사용하여 Yii 양식을 재사용하는 방법

답변

1

양식 모델을 재사용 할 수 있고 양식 및 각 작업에 대해 사용자 지정 유효성 검사 규칙을 작성할 수 있다고 생각합니다. 예를 들면. 하리는 그냥

class RegistrationForm extends CFormModel { 

    public $login; 
    public $password; 
    public $email; 
    public $mobile; 

    public function rules() { 
    return array(
     array('login,password','loginValidator','on'=>'login'), 
     array('login,password,email,mobile','registerValidator','on'=>'register') 
    ); 
    } 

    public function loginValidator() { 
    dummyfunc($this->login,.....); 
    } 

    public function registerValidator() { 
    dummyfunc($this->login,.....); 
    } 

} 

컨트롤러 부분 ... 이런 시도를 제공합니다 :

$formModel = new RegistrationForm('login'); 
$formModel->attributes = $_POST['RegistrationForm']; 
if($formModel->validate()) { 
    #..........; 
} else { 
    #..........; 
} 

이 좋은 하루 되세요!

+0

감사합니다 .. u ... 조금 혼란 스러웠습니다 ... –

0

사용자 모듈을 사용하는 것이 더 좋습니다.

protected/modules/user/ 
    controllers/ 
     LoginController.php 
     LogoutController.php 
     RegisterController.php 
     ... 
    models/ 
     Login.php 
     Register.php 
     ... 
    views/ 
     user/ 
      login.php 
      register.php 
      ... 

하는 yii-user의 디렉토리 구조가 유용 할 수 있습니다 :

는 사용자 모듈의 디렉토리 구조의 예입니다.

관련 문제