動作環境
Codeigniter: 3.1.4
PHP: 7.0.4
久々のCodeigniterでエラー
最近めっきり触らなくなって居たCodeigniterさん。
メインで使ってるフレームワークなのに、他の案件がオオイヨー。
で、久々にお問い合わせフォームで、バリデーションにcallback関数を作ったら下記のようなエラーがでました。
Unable to access an error message corresponding to your filed name 店コード.(custom_uniq_id)
えーと、エラーから察するに「店コード」の入力欄に「custom_uniq_id」なんていうバリデーションエラーはないぞ、ということですかね。
ソースコードは下記になります。
public function get_validate_rule() { ~~~~~~~~ array( 'field' => 'input_shopNo', 'label' => '店コード', 'rules' => 'trim|required|is_natural|callback_custom_uniq_id|xss_clean|encode_php_tags') ~~~~~~~~ } public function custom_uniq_id($str) { if($this-.>shopNo === 0 || $this->shopNo != $str) { $item = $this->shop->get_item(array('shopNo' => $str)); if(!empty($item['shopNo'])) { $this->form_validation->set_message('custom_uniq_id', 'その店舗番号は使用済みです。'); return FALSE; } } return TRUE; }
model内にバリデーションの設定と、callback関数を格納しています。
しかし、これだと上のようなエラーが出てしまいます。
対応
今回問題となっていたのは、model内にcallback関数を格納していることでした。
なので、callback関数をcontrollersに設置してやれば・・・
上手くいきます!
今日はこの辺で!