Codeigniter表单验证:如果规则失败,则停止验证以下规则

时间:2018-09-12 12:05:56

标签: codeigniter-3 codeigniter-form-validation

这是我处理用户输入的控制器方法

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中是否有任何选项可以在规则失败时停止检查其他规则?

1 个答案:

答案 0 :(得分:0)

通过system/libraries/Form_validation.php的{​​{1}}方法,

  

“回调”具有最高优先级(始终称为),其次   通过“ required”(如果回调没有失败就调用),然后每隔一个   规则取决于前一个通过。

这意味着,输入将首先针对回调进行验证。因此,我们将必须检查回调函数本身中的输入。

对于上述情况,我已如下修改了回调函数

_prepare_rules()