Вспомогательная функция Codeigniter к правилам валидации - PullRequest
2 голосов
/ 15 июля 2011

Я создал помощника для проверки, существует ли идентификатор пользователя в моей таблице базы данных user:

   if ( ! function_exists('valid_user'))
    {
        function valid_user($user_id)
        {
            $ci=& get_instance();
            $ci->load->database(); 

            $ci->db->select('id');
            $ci->db->where('id', $user_id);
            $ci->db->where('activated', 1);
            $ci->db->where('banned', 0);
            $ci->db->limit(1);
            $query = $ci->db->get('users');

            if ($query->num_rows() > 0) //if user exists
            {
                return TRUE;
            }
            else
            {
                return FALSE;
            }
        }
    }

Я добавил функцию в свое правило проверки следующим образом:

$this->form_validation->set_rules('user_id', 'User ID', 'required|xss_clean|max_length[11]|is_natural_no_zero|valid_user');

Не выполняет функцию valid_user. Что я тут не так делаю?

Ответы [ 2 ]

1 голос
/ 15 июля 2011

В моем предыдущем опыте я обычно добавлял функцию проверки (в вашем случае, valid_user) в то же место, где вызывается обратный вызов.

Например, я бы поместил метод valid_user вuser_controller, где один из методов регистрации вызовет метод valid_user.

Кроме того, кажется, что в вашем set_rules вы должны установить callback_valid_user, а не valid_user в соответствии с пользователем Codeigniter.направляющие.

http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks

0 голосов
/ 16 июля 2011
$this->form_validation->set_rules('user_id', 'User ID',
'required|xss_clean|max_length[11]|is_natural_no_zero|callback_valid_user');
//note the callback_                                     ↑
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...