Проблемы с проверкой обратного вызова Codeigniter - PullRequest
0 голосов
/ 09 октября 2010

Я хочу создать функцию обратного вызова, которая будет использоваться во время проверки, чтобы проверить, есть ли имя пользователя / адрес электронной почты уже в базе данных ... проблема в том, что я просто не могу заставить ее работать

Итак, это функция обратного вызова:

function callback_username_available($username)
{
    if($this->user_model->username_available($username))
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('username_available', 'ERROR');
        return FALSE;
    }
}

И это логика проверки:

// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_username_available');

if($this->form_validation->run() == FALSE)
{
    // validation errors
}
else
{
    // no validation errors
}

Я занимался этим часами и понятия не имею, что я делаю неправильно ... обе функции находятся в одном контроллере, а все остальные стандартные правила проверки работают просто отлично.

Даже когда я устанавливаю функцию обратного вызова просто возвращать FALSE, она все равно проверяет имя пользователя.

Любые идеи, ребята ... в данный момент меня гонит по стене: S

Ответы [ 2 ]

5 голосов
/ 09 октября 2010

, чтобы вызвать обратный вызов в CI, вам не нужно называть функцию " callback_ my_function" - это будет автоматически добавлено.

это должно работать:

function username_available($username)
{
    if($this->user_model->username_available($username))
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('username_available', 'ERROR');
        return FALSE;
    }
}

// set the rule
    $this->form_validation->set_rules('username', 'Username', 'callback_username_available');

// lets do this ~

if ($this->form_validation->run() == FALSE)
{
    $this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}

чтобы уточнить, вызвав вашу функцию "callback_username_available", CI пытается найти

callback_callback_username_available (), который, конечно, не существует.

0 голосов
/ 15 ноября 2017
// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_callback_username_available');

if($this->form_validation->run() == FALSE)
{
    // validation errors
}
else
{
    // no validation errors
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...