모델이 준비되면 이 모델을 작동하기 위한 논리 작성을 시작할 수 있습니다. 이 논리를 컨트롤러 작업에 넣습니다. 로그인 양식 예의 경우 해당 코드는 다음과 같습니다.
public function actionLogin() { $model=new LoginForm; if(isset($_POST['LoginForm'])) { // 收集用户输入的数据 $model->attributes=$_POST['LoginForm']; // 验证用户输入,并在判断输入正确后重定向到前一页 if($model->validate()) $this->redirect(Yii::app()->user->returnUrl); } // 显示登录表单 $this->render('login',array('model'=>$model)); }
위와 같이 먼저 LoginForm
모델 예제를 만들었습니다. POST 요청(로그인 양식이 제출되었음을 의미)인 경우 제출된 데이터로 $_POST['LoginForm']
을 채운 다음 이 입력을 검증하고 검증에 성공하면 사용자 브라우저를 이전에 ID가 필요했던 곳으로 리디렉션합니다. . 확인이 실패하거나 이 작업에 처음으로 액세스하면 $model
뷰를 렌더링합니다. 이 뷰의 내용은 다음 섹션에서 설명합니다. login
팁: 작업에서는
login
을 사용하여 이전에 인증이 필요했던 페이지 URLYii::app()->user->returnUrl
을 가져옵니다. 구성 요소는 사용자 세션 정보(예: 사용자 이름, 상태)를 나타내는 CWebUser(또는 해당 하위 클래스)입니다. 자세한 내용은 인증 및 권한 부여를 참조하세요.Yii::app()->user
액션에 나타나는 다음 PHP 문에 특히 주목해 보겠습니다. login
$model->attributes=$_POST['LoginForm'];안전한 속성 할당에서 설명한 대로 이 코드 줄은 사용자가 제출한 데이터로 모델을 채웁니다.
속성은 이름-값 쌍의 배열을 받아들이고 각 값을 해당 모델 기능에 할당하는 CModel에 의해 정의됩니다. 따라서 attributes
가 이러한 배열을 제공하는 경우 위 코드는 다음과 같은 긴 단락과 같습니다(필요한 모든 기능이 배열에 존재한다고 가정). $_POST['LoginForm']
$model->username=$_POST['LoginForm']['username']; $model->password=$_POST['LoginForm']['password']; $model->rememberMe=$_POST['LoginForm']['rememberMe'];
보기를 만드는 것입니다.참고: 를 문자열 대신 배열로 전달하려면 양식에 도메인 시간 준수 형식의 이름을 지정해야 합니다. 사양에. 구체적으로 모델 클래스
이제 남은 것은 필수 입력이 포함된 HTML 양식을 포함하는$_POST['LoginForm']
의 기능C
에 해당하는 양식 필드의 이름을 지정합니다. 예를 들어a
속성에 해당하는 양식 필드의 이름을 지정하는 데C[a]
을 사용할 수 있습니다.LoginForm[username]
username
login
위는 Yii 프레임워크 공식 가이드 시리즈 18 - 폼 사용: 액션 생성입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!