使用form_validation库在Code Igniter中验证多维数组

时间:2009-09-30 14:33:02

标签: php codeigniter validation

我遇到了代码点火器的form_validation模块的奇怪问题。我正在尝试从表单帖子验证多维数组,但它没有按预期工作。我用标准表格贴了一百次(夸张),所以我很熟悉它。

我的表单帖子看起来像这样

Array
(
    [location_edit_id] =>
    [theImage] => 
    [thePDF] => 
    [loc] => Array
    (
        [name] => 
        [content_1] => 
        [content_2] => 
        [opening_hours] => 
        [seats] =>
    )
    [ad] => Array
    (
        [address_1] => 
        [address_2] => 
        [address_3] => 
        [town_city] => 
        [county_id] =>
        [region_id] =>
        [postcode] => 
        [telephone] => 
        [email] => 
    )
 )

根据docs - 如果我想验证$ _POST ['loc'] ['name']

,我的控制器中的动作需要如下所示
$this->validation->set_rules( 'loc[name]', 'Location Name', 'required');

if ($this->validation->run() == FALSE)
{
    die( "did not validate" );
} 
else
{
    die( "validated" );
}

无论我做什么,即使$ _POST ['loc'] ['name']为空,也始终有效。我已经检查了库文件库/ Validation.php,我无法看到它实际可以工作的任何地方(因为它总是只是寻找变量名匹配 - 而不是数组),所以我不知道最新情况如何。

编辑:我正在使用Code igniter 1.7.2版本,这是最新的稳定版本。

2 个答案:

答案 0 :(得分:2)

看起来你正在使用错误的库。不推荐使用验证库。请尝试使用Form_validation(libraries / form_validation.php)。

$this->load->library('form_validation');

$this->form_validation->set_rules( 'loc[name]', 'Location Name', 'required');

if ($this->form_validation->run() == FALSE)
{
    die( "did not validate" );
}
else
{
    die( "validated" );
}

答案 1 :(得分:0)

我不确定最新的CI版本,但是在1.6天内这是不可能的..您使用的是什么版本的CI?

我曾经使用过这个

http://codeigniter.com/wiki/Assosiative_Arrays_via_POST/