Symfony-forms
symfony-フォーム
symfonyは、HTMLフォームを簡単かつ安全に処理するためのさまざまな組み込みタグを提供します。 Symfonyのフォームコンポーネントは、フォームの作成と検証プロセスを実行します。 モデルとビューレイヤーを接続します。 事前定義されたモデルから本格的なhtmlフォームを作成するための一連のフォーム要素を提供します。 この章では、フォームについて詳しく説明します。
フォームフィールド
symfonyフレームワークAPIは、フィールドタイプの大規模なグループをサポートします。 各フィールドタイプについて詳しく見ていきましょう。
FormType
Symfonyフレームワークでフォームを生成するために使用されます。 その構文は次のとおりです-
- ここで、$ * studentinfo はStudentタイプのエンティティです。 *createFormBuilder は、HTMLフォームを作成するために使用されます。 addメソッドは、フォーム内の入力要素を*追加*するために使用されます。 title は、学生のタイトルプロパティを指します。 *TextType
- class* はhtmlテキストフィールドを指します。 symfonyはすべてのhtml要素にクラスを提供します。
テキストタイプ
TextTypeフィールドは、最も基本的な入力テキストフィールドを表します。 その構文は次のとおりです-
ここでは、名前はエンティティにマッピングされます。
TextareaType
textarea HTML要素をレンダリングします。 その構文は次のとおりです-
EmailType
EmailTypeフィールドは、HTML5電子メールタグを使用してレンダリングされるテキストフィールドです。 その構文は次のとおりです-
PasswordType
PasswordTypeフィールドは、入力パスワードテキストボックスを表示します。 その構文は次のとおりです-
RangeType
RangeTypeフィールドは、HTML5範囲タグを使用してレンダリングされるスライダーです。 その構文は次のとおりです-
PercentType
PercentTypeは、入力テキストフィールドをレンダリングし、パーセンテージデータの処理に特化しています。 その構文は次のとおりです-
DateType
日付形式をレンダリングします。 その構文は次のとおりです-
ここで、ウィジェットはフィールドをレンダリングする基本的な方法です。
次の機能を実行します。
- choice -3つの選択入力をレンダリングします。 選択の順序は、formatオプションで定義されます。
- text -テキストタイプ(月、日、年)の3つのフィールド入力をレンダリングします。
- single_text -日付型の単一の入力をレンダリングします。 ユーザーの入力は、形式オプションに基づいて検証されます。
CheckboxType
単一の入力チェックボックスを作成します。 これは、ブール値を持つフィールドに対して常に使用する必要があります。 その構文は次のとおりです-
RadioType
単一のラジオボタンを作成します。 ラジオボタンが選択されている場合、フィールドは指定された値に設定されます。 その構文は次のとおりです-
ラジオボタンのチェックを外すことはできません。値は、同じ名前の別のラジオボタンがチェックされた場合にのみ変化することに注意してください。
RepeatedType
これは、値が一致する必要がある2つの同一のフィールドを作成する特別なフィールド「グループ」です。 その構文は次のとおりです-
これは主に、ユーザーのパスワードまたはメールを確認するために使用されます。
ButtonType
シンプルなクリック可能なボタン。 その構文は次のとおりです-
ResetType
すべてのフィールドを初期値にリセットするボタン。 その構文は次のとおりです-
ChoiceType
多目的フィールドは、ユーザーが1つ以上のオプションを「選択」できるようにするために使用されます。 選択タグ、ラジオボタン、またはチェックボックスとしてレンダリングできます。 その構文は次のとおりです-
SubmitType
フォームデータを送信するには、送信ボタンを使用します。 その構文は次のとおりです-
フォームヘルパー関数
フォームヘルパー関数は、テンプレートでフォームを簡単に作成するために使用される小枝関数です。
form_start
有効なアクション、ルート、またはURLを指すHTMLフォームタグを返します。 その構文は次のとおりです-
form_end
form_startを使用して作成されたHTMLフォームタグを閉じます。 その構文は次のとおりです-
テキストエリア
オプションでインラインリッチテキストJavaScriptエディターでラップされたtextareaタグを返します。
チェックボックス
type =“ checkbox”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
input_password_tag
type =“ password”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
input_tag
type =“ text”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
ラベル
指定されたパラメーターを持つラベルタグを返します。
ラジオボタン
type =“ radio”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
reset_tag
type =“ reset”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
選択する
世界のすべての国が入力された選択タグを返します。 その構文は次のとおりです-
提出する
type =“ submit”のXHTML準拠の入力タグを返します。 その構文は次のとおりです-
次のセクションでは、フォームフィールドを使用してフォームを作成する方法を学習します。
学生フォームアプリケーション
Symfonyフォームフィールドを使用して、簡単な学生詳細フォームを作成しましょう。 これを行うには、次の手順に従う必要があります-
ステップ1:Symfonyアプリケーションを作成する
次のコマンドを使用して、Symfonyアプリケーション formsample を作成します。
エンティティは通常、「src/AppBundle/Entity/」ディレクトリの下に作成されます。
ステップ2:エンティティを作成する
「src/AppBundle/Entity/」ディレクトリの下に「StudentForm.php」ファイルを作成します。 ファイルに次の変更を追加します。
StudentForm.php
ステップ3:StudentControllerを追加する
ディレクトリ「src/AppBundle/Controller」に移動し、「StudentController.php」ファイルを作成して、次のコードを追加します。
StudentController.php
ステップ4:ビューをレンダリングする
「app/Resources/views/student/」ディレクトリに移動し、「newl.twig」ファイルを作成して、次の変更を追加します。
ここで、URL「http://localhost:8000/student/new」をリクエストすると、次の結果が生成されます。