2

次のように CI フォーム検証ライブラリを拡張しました。

class MY_Form_validation extends CI_Form_validation {

    function __construct($config = array())
    {
        parent::__construct($config);
    }

    function check_first_char($str) 
    {
        $CI =& get_instance();
        $first_char = substr($str, 0, 1);
        if ($first_char != 'P' || $first_char != 'S') 
        {
            $CI->form_validation->set_message('check_first_char', 'The %s field must begin with P or S!');
            return FALSE;
        }
        else {
            return TRUE;
        }
    }

次のように呼び出します。

$this->form_validation->set_rules('sponsor_id', 'Sponsor ID', 'trim|required|exact_length[7]|check_first_char');

しかし、それは機能していません。私が間違っていることは何ですか?

4

2 に答える 2

-1
$this->form_validation->set_rules('sponsor_id', 'Sponsor ID', 'trim|required|exact_length[7]|callback_check_first_char');

私が間違っていない場合は、「callback_」が必要になります

ソース:http ://codeigniter.com/user_guide/libraries/form_validation.html

編集:そして、form_validationライブラリを初期化する必要もあります。

于 2012-04-20T22:12:26.690 に答える
-1

コントローラーでライブラリーを必ず初期化してください。

$this->load->library('form_validation');
于 2012-04-20T19:19:53.207 に答える