【CodeIgniter】postされた値以外の値をバリデーションする方法
update :
通常、codeigniterのフォームバリデーションライブラリの「run()」メソッドはpostされた値に対して自動的にバリデーションを実行しますが、任意の値に対してバリデーションを実行したい時があります。set_data()メソッドを利用することでpostされた値以外の値に対してバリデーションを実行することができます。
set_data()メソッドを利用して任意の値にバリデーションを実行する
以下サンプルのとおり、set_data()メソッドに配列で値をセットします。配列のキー名とバリデーションルールのfieldキーに関連性をもたせてください。また順番も重要で、データセットのあとにルールのセットを行います。
// | // | バリデーション対象の値を設定する // | $form_data = array( "name"=>"yamada taro", "mail"=>"" ); // | // | バリデーションルールを作成する // | $rules = array( array( "field" => "name", "label" => "名前", "rules" => "required" ), array( "field" => "mail", "label" => "メールアドレス", "rules" => "required" ), ); // | // | データをセット // | $this->form_validation->set_data($form_data); // | // | バリデーションルールをセット // | $this->form_validation->set_rules($rules); // | // | バリデーション実行 // | $flg = $this->form_validation->run();