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
Portons une attention particulière à l'instruction PHP suivante qui apparaît dans l'actionAstuce : Dans l'action , nous utilisons
login
pour obtenir l'URL de la pageYii::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
: login
$model->attributes=$_POST['LoginForm'];
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'];
, qui doit contenir un formulaire HTML avec les entrées requises.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é
Il ne reste plus qu'à créer la vue$_POST['LoginForm']
dans la classe de modèleC
. Par exemple, on peut utilisera
pour nommer le champ du formulaire correspondant à l'attributC[a]
.LoginForm[username]
username
login
Ce 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) !