Fuelphp-advanced-form-programming
FuelPHP-高度なフォームプログラミング
FuelPHPは、FieldsetおよびFieldset_Fieldクラスを通じて高度なフォームプログラミングを提供します。 Fieldset は、フォームを作成するオブジェクト指向の方法を提供します。 モデルを完全にサポートしています。 クライアント側およびサーバー側の検証のサポートも組み込まれています。 本格的なフォームを作成するには、適切なフォームと検証設定でモデルを作成するだけで十分です。 この章では、Fieldsetクラスとそれを使用してフォームを作成する方法について学びましょう。
フィールドセット
Fieldsetは Fieldset_Field オブジェクトのコレクションです。 Fieldset_Fieldは、名、姓などのフォームの個々のエントリを定義します。 検証とともに。 Fieldsetクラスには、フィールドを追加/編集/削除するメソッドがあります。 モデルで定義されたフィールドを識別し、指定されたモデルからフィールドを作成するオプションがあります。 Fieldset は、バックグラウンドでFormクラスとValidationクラスを使用して実際の作業を行います。 Fieldsetクラスの重要なメソッドのいくつかを見てみましょう。
フォージ
- $ name -フィールドセットの識別子
- $ config -構成配列。 可能なオプションは_validation_instance_および_form_instanceです。 validation_instance_は_Validation_オブジェクトを持つことができ、_form_instance_はFormオブジェクトを持つことができます。
実例
get_name
フィールドセットインスタンスの識別子を取得します。
add
- $ name -フィールドの名前
- $ label -フィールドのラベル
- $ attributes -HTMLタグの属性
- $ rules -検証ルール
add_before
add_beforeはaddと似ていますが、新しく作成されたフィールドが追加される前にフィールドを指定する追加のパラメーターが1つある点が異なります。
削除する
フィールド
造る
有効にする
無効にする
form
add_model
add_modelは、モデルのフィールドをフィールドセットに追加します。 次の3つのパラメーターがあります。
- $ class -クラス名
- $ instance -フィールドに値を入力するクラスのインスタンス
- $ method -クラス内のメソッドの名前。 このメソッドは、フィールドセットにフィールドを追加するために使用されます。 Orm \ Modelには必要なメソッドがあります。 デフォルトのメソッド名はset_form_fieldsです。
住む
移住する
検証
検証済み
$ this→ validation()→ validated()のエイリアス。
入力
$ this→ validation()→ input()のエイリアス。
エラー
$ this→ validation()→ error()のエイリアス。
$ this→ validation()→ show_errors()のエイリアス。
実施例
Fieldsetクラスを使用してサンプルの従業員アプリケーションに新しい従業員を追加する高度なフォームを作成しましょう。
モデルを更新
必要な検証ルールで従業員モデルを更新し、次のように検証オブザーバーを追加します。
ここでは、名前フィールドと年齢フィールドの検証ルールを定義し、モデルをデータベースに保存する前にサーバー側の検証を実行する新しいオブザーバーを追加しました。 同じ検証ルールにより、フォームに必要な入力検証属性も作成されます。
フォームを作成
次のように、Employee Controllerで新しいアクションaction_advancedformを作成します。
ここでは、fieldsetを使用してフォームを作成し、フォームをビューに送信しました。 次に、アクションのビュー fuel/app/views/employee/advancedform.php を次のように追加します。
これで、ページ http://localhost:8080/employee/add をリクエストすると、次のフォームが表示されます。
プロセスフォーム
アクションメソッド_action_advancedform_を更新してフォームを処理し、ユーザーが入力した従業員データを従業員コントローラーのデータベースに次のように追加します。
ここでは、ユーザーが入力したデータが検証され、データベースに保存されると、従業員リストページにリダイレクトされます。 それ以外の場合は、フォームが再び表示されます。
フォームを作成する
次に、URL http://localhost:8080/employee/add を要求し、従業員データを入力してフォームを送信します。 データが提供されない場合、次のスクリーンショットに示すように、フォームはユーザーにデータの入力を促します。
ユーザーがクライアント側の検証をバイパスした場合、サーバーはフォームを検証し、次のスクリーンショットに示すようにエラーを表示します。
データがクライアントおよびサーバー側の検証に合格した場合、従業員データはデータベースに保存され、ページはリストページにリダイレクトされます。