Codeigniter3.0のForm Validationで複数のルールに同じcallbackを指定している場合
3カ所inputのあるフォームをPOSTした際、
その3つともに同じcallbackを指定しているのですが
そのcallback function内でどのPOSTかを見分ける方法ってありますか?
例えば、
public function hoge()
{
$this->form_validation->set_rules("hoge1", "ホゲ1", "callback__validate_hoge");
$this->form_validation->set_rules("hoge2", "ホゲ2", "callback__validate_hoge");
$this->form_validation->set_rules("hoge3", "ホゲ3", "callback__validate_hoge");
if($this->form_validation->run()){
//処理
} else //処理
}
function _validate_hoge()
{
echo "This is ".$whichhoge;
}
こうあるとき、$whichhogeにhoge1と入れたりする方法ってありませんか?
また、このようにruleに独自コールバックしかないような場合は$this->input->post();で取ってきて
中身をループさせて処理させたほうが良いと思いますか?
よろしくおねがいします。
追記:
自己解決しましたが、最後の質問は引き続きお聞きしたいです。
form_validationを使う利点として何かあるかな、と。
思いつくのはルールを増やしたいときくらいですが、既に用意されているルールも限りがありますし、どうなんでしょうか。
解決策は
public function hoge()
{
$this->form_validation->set_rules("hoge1", "ホゲ1", "callback__validate_hoge[hoge1]");
$this->form_validation->set_rules("hoge2", "ホゲ2", "callback__validate_hoge[hoge2]");
$this->form_validation->set_rules("hoge3", "ホゲ3", "callback__validate_hoge[hoge3]");
if($this->form_validation->run()){
//処理
} else //処理
}
function _validate_hoge($value, $whichhoge)
{
return $value." is ".$whichhoge; //ex.) ホゲ1 is hoge1
}
echoはおかしかったですね。