> 백엔드 개발 > PHP 튜토리얼 > Yii 프레임워크 공식 가이드 시리즈 18 - 양식 사용: 액션 생성

Yii 프레임워크 공식 가이드 시리즈 18 - 양식 사용: 액션 생성

黄舟
풀어 주다: 2023-03-05 17:56:01
원래의
1043명이 탐색했습니다.

모델이 준비되면 이 모델을 작동하기 위한 논리 작성을 시작할 수 있습니다. 이 논리를 컨트롤러 작업에 넣습니다. 로그인 양식 예의 경우 해당 코드는 다음과 같습니다.

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을 사용하여 이전에 인증이 필요했던 페이지 URL Yii::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'];
로그인 후 복사

참고: 를 문자열 대신 배열로 전달하려면 양식에 도메인 시간 준수 형식의 이름을 지정해야 합니다. 사양에. 구체적으로 모델 클래스 $_POST['LoginForm']의 기능 C에 해당하는 양식 필드의 이름을 지정합니다. 예를 들어 a 속성에 해당하는 양식 필드의 이름을 지정하는 데 C[a]을 사용할 수 있습니다. LoginForm[username]username

이제 남은 것은 필수 입력이 포함된 HTML 양식을 포함하는
보기를 만드는 것입니다.

login위는 Yii 프레임워크 공식 가이드 시리즈 18 - 폼 사용: 액션 생성입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿