Le framework Nette est un framework léger pour le développement Web PHP. Il est largement apprécié et utilisé pour sa simplicité, sa facilité d'utilisation, son efficacité et sa stabilité. Lors du développement d’applications Web, l’utilisation de formulaires et la validation sont une exigence inévitable. Cet article expliquera comment utiliser les formulaires et la validation dans le framework Nette.
1. Construction de formulaires
Dans le framework Nette, les formulaires peuvent être créés via la classe Form. La classe Form se trouve dans l'espace de noms NetteForms et peut être introduite via le mot-clé use.
use NetteFormsForm;
La syntaxe de base pour créer un formulaire est la suivante :
$form = new Form();
Par exemple, nous pouvons créer un formulaire de connexion qui contient des zones de saisie du nom d'utilisateur et du mot de passe.
$form = new Form(); $form->addText('username', '用户名:') ->setRequired('请输入用户名!'); $form->addPassword('password', '密码:') ->setRequired('请输入密码!'); $form->addSubmit('submit', '登录');
Le code ci-dessus utilise la méthode addText() et la méthode addPassword() pour créer respectivement les zones de saisie du nom d'utilisateur et du mot de passe. Le premier paramètre est le nom de la zone de saisie et le deuxième paramètre est l'étiquette de la zone de saisie. . La méthode setRequired() peut définir si la zone de saisie est obligatoire.
2. Sortie du formulaire
Nous pouvons utiliser la méthode $form->render() pour afficher le formulaire dans la vue. Comme indiqué ci-dessous :
$form = new Form(); ... echo $form->render();
Si vous souhaitez afficher chaque zone de saisie individuellement dans la vue, vous pouvez utiliser la syntaxe suivante :
echo $form['username']->getControl(); echo $form['password']->getControl(); echo $form['submit']->getControl();
3. Traitement du formulaire
La soumission du formulaire peut déclencher le traitement via la méthode POST ou GET. Dans le framework Nette, vous pouvez utiliser la méthode handleRequest() pour gérer les opérations après la soumission du formulaire. Par exemple, nous pouvons écrire le code suivant pour traiter le formulaire de connexion ci-dessus :
$form = new Form(); ... if ($form->isSubmitted() && $form->isValid()) { // 处理表单数据 $values = $form->getValues(); $username = $values['username']; $password = $values['password']; // 验证用户名密码是否正确 ... } echo $form->render();
Avant de traiter les données du formulaire, nous devons utiliser la méthode isSubowned() pour déterminer si le formulaire a été soumis, et utiliser la méthode isValid() pour déterminer si le formulaire est valide. Si le formulaire est valide, vous pouvez obtenir les données du formulaire via la méthode getValues() et les traiter en conséquence.
4. Vérification du formulaire
Dans le développement actuel, la vérification des données du formulaire est un maillon très important. Dans le framework Nette, la validation de formulaire peut être implémentée via la méthode addRule(). Par exemple, nous pouvons ajouter les règles de validation suivantes au formulaire de connexion ci-dessus :
$form->addText('username', '用户名:') ->setRequired('请输入用户名!'); $form->addPassword('password', '密码:') ->setRequired('请输入密码!'); $form->addSubmit('submit', '登录'); ... $form['username']->addRule(Form::MAX_LENGTH, '用户名不能超过50个字符!', 50); $form['password']->addRule(Form::MIN_LENGTH, '密码至少需要输入6个字符!', 6);
La méthode addRule() accepte trois paramètres, à savoir le nom de la règle, le message d'erreur de la règle et les paramètres de la règle. Le nom de la règle et les paramètres de la règle sont fournis par le framework Nette. Plus de règles peuvent être consultées dans la documentation du framework Nette.
En plus d'utiliser les règles fournies par le framework Nette, nous pouvons également utiliser des règles personnalisées. Par exemple, nous pouvons définir une règle pour la zone de saisie du mot de passe pour exiger que le mot de passe ne puisse pas contenir le nom d'utilisateur :
$form['password']->addRule(function ($password, $username) { return stripos($password, $username) === false; }, '密码不能包含用户名!', $form['username']->getValue());
Dans le code ci-dessus, nous définissons une fonction anonyme en tant que règle et transmettons le nom d'utilisateur à la fonction via le troisième paramètre. . Dans la fonction, nous pouvons utiliser la fonction stripos() pour savoir si le mot de passe contient le nom d'utilisateur.
5. Affichage de la sortie du formulaire et des résultats de vérification
Une fois le formulaire soumis, l'utilisateur doit voir la sortie du formulaire et les résultats de vérification correspondants. Dans le framework Nette, nous pouvons générer le formulaire en appelant la méthode echo $form->render() dans la vue. Dans le même temps, en appelant la méthode echo $form->getMessages() dans la vue, le message d'invite du résultat de la vérification du formulaire peut être généré. Par exemple, nous pouvons placer le code qui génère le formulaire et les résultats de la vérification du formulaire dans la même vue :
<form method="post"> <?php echo $form['username']->getControl(); ?><br> <?php echo $form['password']->getControl(); ?><br> <?php echo $form['submit']->getControl(); ?> </form> <?php if ($form->isSubmitted() && !$form->isValid()) { echo $form->getMessages(); } ?>
Dans le code ci-dessus, nous générons d'abord le formulaire, puis déterminons si le formulaire est soumis et n'est pas valide, sinon. , puis affichez le formulaire Message d'invite pour les résultats de la vérification.
6. Résumé
L'utilisation des formulaires et de la validation est l'un des besoins fondamentaux du développement Web. Dans le framework Nette, nous pouvons créer des formulaires via la classe Form et implémenter la validation de formulaire via la méthode addRule(). Grâce aux règles de validation et aux règles personnalisées fournies par le framework Nette, vous pouvez facilement valider les données du formulaire. Dans la vue, nous pouvons afficher le formulaire via la méthode echo $form->render() et afficher les informations d'invite du résultat de la vérification du formulaire via la méthode echo $form->getMessages().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!