Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter表单验证多个回调_Php_Codeigniter - Fatal编程技术网

Php Codeigniter表单验证多个回调

Php Codeigniter表单验证多个回调,php,codeigniter,Php,Codeigniter,我试着做到以下几点: $this->form_validation->set_rules('username', 'lang:login_username', 'callback_login_check'); $this->form_validation->set_rules('username', 'lang:login_username', 'callback_employee_location_check'); 我不会得到估值错误,但这个条件总是正确的: if($

我试着做到以下几点:

$this->form_validation->set_rules('username', 'lang:login_username', 'callback_login_check');
$this->form_validation->set_rules('username', 'lang:login_username', 'callback_employee_location_check');
我不会得到估值错误,但这个条件总是正确的:

if($this->form_validation->run() == FALSE)
如果我将上述两行更改为:

$this->form_validation->set_rules('username', 'lang:login_username', 'callback_login_check|callback_employee_location_check');

然后它就如预期的那样工作了。为什么我不能用第一种形式?第二个是否覆盖了第一个,并且从未调用登录检查?

正如您所说,当您在set_rules()中组合两个回调时,它会起作用。这是正确的。如果单独输入它们,它们将相互覆盖。表单输入的所有规则都必须在同一个set_rules()方法中。

回调返回什么值?布尔值(TRUE,FALSE)确定,那么其中一个回调返回FALSE?如果是这种情况,那么run()将返回false,因为其中一条规则失败。在第二种情况下,您或回调组合在一起,它看起来是TRUE还是FALSE,然后返回TRUE。您可以通过运行第1行,然后独立运行第2行来调试它。