Maison  >  Article  >  développement back-end  >  Yii Framework Official Guide Series 18 - Utilisation de formulaires : création d'actions

Yii Framework Official Guide Series 18 - Utilisation de formulaires : création d'actions

黄舟
黄舟original
2017-02-13 09:12:161029parcourir

Avec le modèle en main, nous pouvons commencer à écrire la logique de fonctionnement de ce modèle. Nous mettons cette logique dans une action du contrôleur. Pour l'exemple de formulaire de connexion, le code correspondant est :

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));
}

Comme indiqué ci-dessus, nous avons d'abord créé un modèle LoginForm Exemple Si ; la requête est une requête POST (ce qui signifie que le formulaire de connexion a été soumis), nous remplissons $_POST['LoginForm'] avec les données soumises ; puis nous validons cette entrée, et si la validation réussit, redirigeons le navigateur de l'utilisateur vers les pages précédentes qui nécessitent une authentification. Si la vérification échoue ou si cette action est accédée pour la première fois, nous rendons la vue $model. Nous expliquerons le contenu de cette vue dans la section suivante. login

Astuce : Dans l'action , nous utilisons login pour obtenir l'URL de la page Yii::app()->user->returnUrl qui nécessitait auparavant une authentification. Le composant est un CWebUser (ou sa sous-classe) qui représente les informations de session utilisateur (par exemple, nom d'utilisateur, statut). Pour plus de détails, veuillez vous référer à Authentification et autorisation.Yii::app()->user

Portons une attention particulière à l'instruction PHP suivante qui apparaît dans l'action

 : login


$model->attributes=$_POST['LoginForm'];

Comme nous en avons discuté dans Safe Property Assignment , cette ligne de code remplit le modèle avec les données soumises par l'utilisateur.

Les propriétés sont définies par CModel, qui accepte un tableau de paires nom-valeur et attribue chaque valeur à la fonctionnalité du modèle correspondante. Donc, si attributes nous donne un tel tableau, le code ci-dessus équivaut au long paragraphe suivant (en supposant que toutes les fonctionnalités requises sont présentes dans le tableau) : $_POST['LoginForm']


$model->username=$_POST['LoginForm']['username'];
$model->password=$_POST['LoginForm']['password'];
$model->rememberMe=$_POST['LoginForm']['rememberMe'];

Remarque : Pour que nous transmette un tableau au lieu d'une chaîne, nous devons suivre une convention lors de la dénomination du formulaire champs. Plus précisément, nous nommons le champ de formulaire correspondant à la fonctionnalité $_POST['LoginForm'] dans la classe de modèle C. Par exemple, on peut utiliser a pour nommer le champ du formulaire correspondant à l'attribut C[a]. LoginForm[username]username

Il ne reste plus qu'à créer la vue
, qui doit contenir un formulaire HTML avec les entrées requises.

loginCe qui précède est la série 18 du guide officiel du Yii Framework - Utilisation de formulaires : création d'actions. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn