動作環境
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に設置してやれば・・・

上手くいきます!
今日はこの辺で!