Nette フレームワークは、PHP Web 開発用の軽量フレームワークであり、そのシンプルさ、使いやすさ、効率性、安定性により広く歓迎され、使用されています。 Web アプリケーションを開発する場合、フォームと検証の使用は避けられない要件です。この記事では、Nette フレームワークでのフォームと検証の使用方法を紹介します。
1. フォームの構築
Nette フレームワークでは、Form クラスを通じてフォームを作成できます。 Form クラスは NetteForms 名前空間にあり、use キーワードを通じて導入できます。
use NetteFormsForm;
フォームを作成するための基本的な構文は次のとおりです。
$form = new Form();
たとえば、ユーザー名とパスワードの入力ボックスを含むログイン フォームを作成できます。
$form = new Form(); $form->addText('username', '用户名:') ->setRequired('请输入用户名!'); $form->addPassword('password', '密码:') ->setRequired('请输入密码!'); $form->addSubmit('submit', '登录');
上記のコードは、addText() メソッドと addPassword() メソッドを使用して、ユーザー名とパスワードの入力ボックスをそれぞれ作成します。最初のパラメータは入力ボックスの名前で、2 番目のパラメータはラベルです入力ボックスの。 setRequired() メソッドは、入力ボックスが必須かどうかを設定できます。
2. フォーム出力
$form->render() メソッドを使用して、フォームをビューに出力できます。以下に示すように:
$form = new Form(); ... echo $form->render();
ビュー内の各入力ボックスを個別に出力したい場合は、次の構文を使用できます:
echo $form['username']->getControl(); echo $form['password']->getControl(); echo $form['submit']->getControl();
3. フォーム処理
フォームを送信できます。 POST 経由、または GET メソッドによって処理がトリガーされます。 Nette フレームワークでは、handleRequest() メソッドを使用して、フォーム送信後の操作を処理できます。たとえば、次のコードを記述して上記のログイン フォームを処理できます。
$form = new Form(); ... if ($form->isSubmitted() && $form->isValid()) { // 处理表单数据 $values = $form->getValues(); $username = $values['username']; $password = $values['password']; // 验证用户名密码是否正确 ... } echo $form->render();
フォーム データを処理する前に、isSubmitted() メソッドを使用してフォームが送信されたかどうかを確認し、 isValid() メソッドを使用して、フォームが有効かどうかを判断します。フォームが有効な場合は、getValues() メソッドを通じてフォーム内のデータを取得し、それに応じて処理できます。
4. フォームの検証
実際の開発において、フォーム データの検証は非常に重要なリンクです。 Nette フレームワークでは、addRule() メソッドを通じてフォーム検証を実装できます。たとえば、次の検証ルールを上記のログイン フォームに追加できます。
$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);
addRule() メソッドは、ルール名、ルール エラー メッセージ、ルール パラメータという 3 つのパラメータを受け入れます。ルール名とルール パラメータは、Nette フレームワークによって提供されます。その他のルールについては、Nette フレームワークのドキュメントを参照してください。
Nette フレームワークによって提供されるルールを使用することに加えて、カスタム ルールを使用することもできます。たとえば、パスワードにユーザー名を含めることができないようにパスワード入力ボックスのルールを設定できます。
$form['password']->addRule(function ($password, $username) { return stripos($password, $username) === false; }, '密码不能包含用户名!', $form['username']->getValue());
上記のコードでは、ルールとして匿名関数を定義し、ユーザー名を に渡します。この機能。関数内で、stripos() 関数を使用して、ユーザー名がパスワードに含まれているかどうかを確認できます。
5. フォーム出力と検証結果の表示
フォームが送信された後、ユーザーは対応するフォーム出力と検証結果を確認する必要があります。 Nette フレームワークでは、ビューで echo $form->render() メソッドを呼び出すことでフォームを出力できます。同時に、ビュー内で echo $form->getMessages() メソッドを呼び出すことで、フォーム検証結果のプロンプトメッセージを出力できます。たとえば、フォームとフォーム検証結果を出力するコードを同じビューに配置できます。
<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(); } ?>
上記のコードでは、最初にフォームを出力し、次にフォームが送信されたかどうかを判断します。が有効ではない場合、フォーム検証結果のプロンプト情報を出力します。
6. 概要
フォームと検証の使用は、Web 開発における基本要件の 1 つです。 Nette フレームワークでは、Form クラスを通じてフォームを作成し、addRule() メソッドを通じてフォーム検証を実装できます。 Nette フレームワークによって提供される検証ルールとカスタム ルールを使用すると、フォーム データを簡単に検証できます。ビューでは、 echo $form->render() メソッドを通じてフォームを出力し、 echo $form->getMessages() メソッドを通じてフォーム検証結果のプロンプト情報を出力できます。
以上がNette フレームワークでフォームと検証を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。