回调在 codeigniter 3.0 中不起作用
callback not working in 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 的新手。上面的代码不显示密码应该匹配错误消息。回调有问题还是我遗漏了什么。
您正在传递 callback__matcherror
作为 set_rules
的第四个参数 function.It 应该是第三个参数。使用这种方式
$this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]|callback__matcherror');
备注
如果您的密码字段 match.Because 您在那里应用了 3 条规则,您将收到此错误消息。第 3 条规则 (call_back_function) 将在第 2 条规则成功时应用。当密码匹配时,您的第二条规则将有效。
matches[password]
将自动检查密码。您不需要使用回调函数 callback__matcherror
看看here。您无需回拨。
<?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 的新手。上面的代码不显示密码应该匹配错误消息。回调有问题还是我遗漏了什么。
您正在传递 callback__matcherror
作为 set_rules
的第四个参数 function.It 应该是第三个参数。使用这种方式
$this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]|callback__matcherror');
备注
如果您的密码字段 match.Because 您在那里应用了 3 条规则,您将收到此错误消息。第 3 条规则 (call_back_function) 将在第 2 条规则成功时应用。当密码匹配时,您的第二条规则将有效。
matches[password]
将自动检查密码。您不需要使用回调函数 callback__matcherror
看看here。您无需回拨。