【发布时间】:2017-12-08 22:24:26
【问题描述】:
大家好,我在应用程序的 codeigniter 中使用了 form_validation 库。我正在制作密码检索功能。我已经制作了电子邮件的提交表格。现在,在电子邮件输入字段上,我想应用这些验证。
- 需要
- 有效电子邮件
- 检查电子邮件是否存在。
对于第三个,我使用回调函数来检查数据库,它工作正常。但是使用回调函数 valid_email 不起作用。这是我的控制器功能。
public function password_retrieve()
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|callback__email_exists');
if ($this->form_validation->run() == false) {
$this->load->view('login_header');
$this->load->view('password_retrieve');
$this->load->view('login_footer');
} else {
}
} else {
$this->load->view('login_header');
$this->load->view('password_retrieve');
$this->load->view('login_footer');
}
}
function _email_exists($email)
{
$this->load->model('users_model');
$result = $result = $this->users_model->check_email_is_exist($email);
if (!$result) {
$this->form_validation->set_message(__FUNCTION__, 'This %s address does not exist!');
return false;
} else {
return true;
}
}
它应该检查valid_email而不是去回调函数。
换句话说,我想知道规则的顺序是什么。回调规则是否在 valid_email 之前运行?
【问题讨论】:
-
valid_email 是一个本地规则,所以没有理由它不应该工作......你在尝试什么电子邮件?
-
我尝试使用测试,它直接说这不存在。忽略 valid_email 规则
-
为什么函数名中有下划线
_。只需将其删除并尝试。只是email_exists($email) -
试过了还是不成功。
标签: php codeigniter codeigniter-3