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の間である必要があります。 両方のルールが有効な場合、従業員データが保存され、従業員リストページにリダイレクトされます。 それ以外の場合、従業員データは拒否され、従業員ページを追加するためにリダイレクトされます。