[Codeigniter-users] 配列要素へのForm_Validationについて

Back to archive index

Kenji Suzuki kenji****@gmail*****
2011年 10月 7日 (金) 19:57:42 JST


Kenji です。


On Thu, 06 Oct 2011 22:25:21 -0700
"Takeshi.mms" <three****@gmail*****> wrote:

> Kenjiさま
> 
> 早速のご返信ありがとうございます。
> ちょっと言葉足らずでしたね。
> 
> 
> 現状といたしましては、
> 
> 拡張を試みたのですが、どうやってパラメータ値(配列)の検証対象の
> データと同じindexの値を取ればよいかがわからず、頓挫している状態です。
> 
> 具体的には、自作matchesに配列要素をパラメータとして渡してみた
> のですが、関数では単純に配列のまま取得し、現在のindexが分からず、
> どの値と検証してよいやら。。。といった状態でした。

確かに、現状の Form validation の枠組みでは簡単にはうまくいかないようですね。

ちょっとキレイではないですが、以下で検証は通るのではないでしょうか。

	$this->form_validation->set_rules('password', 'Password', 'required');
	$this->form_validation->set_rules('password_c', 'Password Confirm', 'matches[password]');

個別にどのパスワードがエラーかがわかりませんが。


個別に知るには、$this->_field_data の postdata の値を取得して比較する
メソッドを作ればいけると思います。

配列の数だけ検証ルールが実行されてしまうのがキレイではないですが。


// Kenji


> 何かヒントだけでも頂ければ幸いです。
> 
> 以上、宜しくお願いいたします。
> --
> Takeshi.mms
> 
> 
> Kenji Suzuki wrote (2011/10/06 21:46):
> > Kenji です。
> > 
> > 
> > On Thu, 06 Oct 2011 21:19:12 -0700
> > "Takeshi.mms"<three****@gmail*****>  wrote:
> > 
> >> お世話になります。
> >>
> >> Takeshiと申します。
> >>
> >> Form_Validationの利用についての質問です。私なりに調べたのですが、
> >> 解決に至らず、ここで皆様のお知恵を拝借いたしたく、宜しくお願い
> >> いたします。
> >>
> >> 目的:
> >> Form_Validationを用いた配列要素へのパラメータ付きの検証
> >> (matchesのような検証です: matches[form_item])
> >>
> >> 例:
> >> 複数人の登録が同時に出来るフォームがあるとします。
> >> また、要素は user_id[], age[], password[], password_c[] とします。
> >>
> >> 上記のように全ての要素は配列になっており、それぞれのpasswordと
> >> password_cの一致を検査。といった感じです。
> >>
> >> また、age, password にはuser_idが入っていないときにエラーとする
> >> 処理も考えていますが、まずは matches が出来ないことには。
> >> といった具合です。
> >>
> >> system/Form_validation の処理も見ましたが、現状のmatches関数では
> >> 無理かと思いMY_Form_validationに作成しようと思ったのですが、
> >> ひょっとして、Form_validationでは実現は難しいでしょうか?
> > 
> > matches を拡張する、あるいはそのようなメソッドを追加することでできる
> > と思いますよ。
> > 
> > 
> > // Kenji
> > 
> > 
> >> なお、配列をやめるというのは、今回のシステムの制約上できません。
> >>
> >> 説明が分かりづらい点がありましたらご指摘下さい。
> >> 以上、宜しくお願いいたします。
> >>
> >> -- 
> >> Takeshi.mms
> >>
> >> _______________________________________________
> >> Codeigniter-users mailing list
> >> Codei****@lists*****
> >> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
> > 
> > _______________________________________________
> > Codeigniter-users mailing list
> > Codei****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
> 
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index