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

我对代码点火器的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版本,这是最新的稳定版本.

最佳答案 看起来你正在使用错误的库.不推荐使用验证库.请尝试使用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" );
}
点赞