我的登录表单中有一个函数,用于检查电子邮件和密码是否与数据库中的值匹配,如果是,则将用户登录到系统中 .
如果此函数返回false,我想显示验证错误 .
我的问题是我不确定如何创建它 . 该消息与密码和电子邮件字段有关,因此我不希望每个输入字段的规则只显示一条消息 .
我已经尝试使用flashdata来实现这一点但它只在页面刷新时才有效 .
如何仅为函数 $this->members_model->validate_member()
创建新的验证规则?
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('email_address', '"Email address"', 'trim|required|valid_email');
$this->form_validation->set_rules('password', '"Password"', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$viewdata['main_content'] = 'members/login';
$this->load->view('includes/template', $viewdata);
}
else
{
if($this->members_model->validate_member())
{
2 回答
您在规则中使用
callback_
,参见callbacks,例如 .并在控制器中添加该方法 . 此方法需要返回TRUE或FALSE
然后,您需要在验证失败时创建相应的错误
实现这一目标的最佳方法是扩展CodeIgniter的表单验证库 . 假设我们要为数据库表
users
的字段access_code
创建名为access_code_unique
的自定义验证器 .您所要做的就是在
application/libraries
目录中创建一个名为MY_Form_validation.php
的类文件 . 该方法应始终返回TRUE
或FALSE
现在,您可以轻松添加新创建的规则