2012-10-14 125 views
3

我想查找所有验证失败的字段名称。CodeIgniter如何获取验证失败的所有字段名称

我想在验证失败的字段上应用错误类。我知道如何显示与该字段相关的错误消息。

但是一些我想知道的字段名称,以便我可以检查天气字段是否在列表中,并向该字段添加错误类。

回答

5

这取决于你将如何处理的结果,但在这里,你可以用它来获得的示数场的函数:

print_r($this->form_validation->error_array()) 

如果你需要更多的,看看/系统/库/ form_validation。 php 从那里你可以找到任何你想要的东西,包括与lib有关的函数和变量名称。

+1

感谢您让我走上正轨 – AlexC

8

Kudos pit让我开始。但我需要补充一点,以防其他人在使用坑的答案时遇到同样的问题。在CI 2.0,我试了一下,得到:

Call to undefined method MY_Form_validation::error_array() 

因为我并不是故意想从我的自定义表单验证调用任何东西,我看了/system/libraries/Form_validation.php。至少在2.0中,没有函数error_array()。

因此,要解决这个问题,如果你不已经有一个,创建一个文件/application/libraries/MY_Form_validation.php(区分大小写),并把下面的代码:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class MY_Form_validation extends CI_Form_validation { 

    function __construct(){ 
     parent::__construct(); 
    } 

    function error_array(){ 
     return $this->_error_array; 
    } 
} 
?> 

然后做print_r($this->form_validation->error_array())将工作。

+0

您使用的是哪个版本?你应该像下面这样得到它:https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Form_validation.php – pit

+0

其实,我想我知道你为什么拥有它,而我没有。您发布的链接是开发分支,而不是稳定版本。刚刚从http://codeigniter.com拉下2.1.3,并确认它从稳定的zip中丢失。 – AlexC

0

要设置自己的自定义您可以留言编辑该文件,或使用以下功能:

$this->form_validation->set_message('rule', 'Error Message');

凡规则对应于特定规则的名称,错误消息是文本你想显示。

如果在错误字符串中包含%s,则在设置规则时,它将替换为用于字段的“人”名称。

$this->form_validation->set_rules(array('field' => 'name','label' => 'Full Name','rules' => 'required')); 
$this->form_validation->set_message('required', '%s Must be fill!'); 

echo validation_errors() //Full name Must be fill! 
+0

$ s从哪里来? –