Fuelphp-validation
提供:Dev Guides
FuelPHP-検証
- 検証*は、Webアプリケーションで頻繁に繰り返されるタスクの1つです。 ユーザーはフォームに必要なデータを入力して送信します。 次に、Webアプリケーションは、データを処理する前にデータを検証する必要があります。 たとえば、ユーザーは従業員データを入力し、post_actionはデータベースに保存する前に検証する必要があります。 FuelPHPは、この目的のために非常に単純なクラスValidationを提供します。
FuelPHPでは、検証の概念は非常にシンプルであり、Validationクラスを通じてフォームを適切に検証するためのさまざまなメソッドを提供します。 以下は検証のワークフローです。
ステップ1 *- *forge メソッドを使用して新しい検証オブジェクトを作成します。
$val = Validation::forge();
- ステップ2 *-addメソッドを使用して検証する必要があるフィールドを追加します。
$val->add('name', 'Employee name');
ステップ3 *- *add_rule メソッドを使用して、追加されたフィールドの検証ルールを設定します。
$val->add('name', 'Employee name')->add_rule('required');
$val->add('age', 'Employee age')->add_rule('required')
->add_rule('numeric_min', 20)
->add_rule('numeric_max', 30);
- ステップ4 *-runメソッドを呼び出してデータを検証します。
//run validation on just post
if ($val->run()) {
//success
} else {
//falier
}
- ステップ5 *-検証済みおよびエラーを使用して、それぞれ有効および無効なフィールドを取得します。
$vars = $val->validated();
$vars = $val->error();
規則
FuelPHPには検証する多くのルールが含まれており、新しいルールを作成するオプションもあります。 Validationクラスでサポートされているルールは次のとおりです。
- 必須-入力する値
- required_with -別のフィールドをコンパニオンフィールドとして設定します。 フィールドが設定されている場合、コンパニオンフィールドも設定する必要があります
- match_value -フィールドの値と一致する値を設定します
- match_pattern -フィールドの値と正規表現として一致する値を設定します
- match_field -フィールドの値と一致する値として別のフィールドの値を設定します
- match_collection -コレクションとしてフィールドの値と一致する値を設定します
- min_length -フィールドの値の最小長を設定します
- max_length -フィールドの値の最大長を設定する
- exact_length -フィールドの値の正確な長さを設定する
- valid_date -フィールドの値を有効な日付に設定します
- valid_email -フィールドの値を有効な電子メールに設定します
- valid_emails -フィールドの値を、コンマで区切られた有効なメールに設定します
- valid_url -フィールドの値を有効なURLに設定します
- valid_ip -フィールドの値を有効なIPに設定します
- numeric_min -フィールドの値の最小値を設定します
- numeric_max -フィールドの値の最大値を設定します
- numeric_between -フィールドの値の最小値と最大値を設定します
- valid_string -正規表現に似ていますが、より単純です
$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');
ここで、アルファはアルファベット文字を指し、ドットは(。)を指します。 有効な文字列は、アルファベット文字と(。)を含む文字列のみです。 他のオプションは、大文字、小文字、スペシャル、数値、スペースなどです。
実施例
従業員の追加機能を更新して、検証を含めることができます。 従業員コントローラーの post_add メソッドを次のように更新するだけです。
public function post_add() {
$val = Validation::forge();
$val->add('name', 'Employee name')->add_rule('required');
$val->add('age', 'Employee age')->add_rule('required')
->add_rule('numeric_min', 20)
->add_rule('numeric_max', 30);
if ($val->run()) {
$name = Input::post('name');
$age = Input::post('age');
$model = new model_employee();
$model->name = $name;
$model->age = $age;
$model->save();
Response::redirect('employee/list');
} else {
Response::redirect('employee/add');
}
}
ここでは、 name とageを必須フィールドとして指定しました。 *年齢*は20〜30の間である必要があります。 両方のルールが有効な場合、従業員データが保存され、従業員リストページにリダイレクトされます。 それ以外の場合、従業員データは拒否され、従業員ページを追加するためにリダイレクトされます。