обратный вызов не работает в codeigniter 3.0

<?php

class Form extends CI_Controller {

public function index()
{
$this->load->helper(array('form', 'url'));

$this->load->library('form_validation');

$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]', 'callback__matcherror');//$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
//$this->form_validation->set_rules('email', 'Email', 'required');

if ($this->form_validation->run() == FALSE)
{
$this->load->view('login');

}
else
{

$this->load->view('insert_dream');

}

}

public function _matcherror() {
$this->form_validation->set_message('_matcherror', 'Passwords should match');
return FALSE;
}

}
?>

Я новичок в Codeigniter. Приведенный выше код не отображает пароли должны соответствовать сообщению об ошибке. Что-то не так с обратным вызовом или я что-то упустил.

0

Решение

Взглянуть Вот. Вам не нужно делать обратный звонок.

0

Другие решения

Вы проходите callback__matcherror как четвертый параметр set_rules функция. Это должен быть 3-й параметр. Используйте этот способ

$this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]|callback__matcherror');

Заметка

Вы получите это сообщение об ошибке, если ваши поля пароля совпадают. Поскольку вы применяете там правило 3, 3-е правило (call_back_function) будет применяться, когда второе правило будет успешным. Ваше второе правило будет действовать при совпадении паролей.

0

matches[password]

автоматически проверит пароль. Вам не нужно использовать функцию обратного вызова callback__matcherror

0
По вопросам рекламы [email protected]