这是我处理用户输入的控制器方法
function do_something_cool()
{
if ($this->form_validation->run() === TRUE)
{
// validation passed process the input and do_somthing_cool
}
// show the view file
$this->load->view('view_file');
验证规则如下:
<?php
$config = array(
'controller/do_something_cool' => array(
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'trim|required|valid_email|callback_check_email_exists',
)
)
);
我的问题: 如果用户输入的电子邮件无效,则验证规则不会停止执行下一条规则,在这种情况下为回调函数。因此,即使电子邮件无效,我也会收到关于check_email_exists()回调的错误消息。
CI中是否有任何选项可以在规则失败时停止检查其他规则?
答案 0 :(得分:0)
通过system/libraries/Form_validation.php
的{{1}}方法,
“回调”具有最高优先级(始终称为),其次 通过“ required”(如果回调没有失败就调用),然后每隔一个 规则取决于前一个通过。
这意味着,输入将首先针对回调进行验证。因此,我们将必须检查回调函数本身中的输入。
对于上述情况,我已如下修改了回调函数
_prepare_rules()