2009-09-30 64 views
4

我对代码点火器的form_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 [“禄”] [“名”]

$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,并且我无法看到实际上会工作的任何地方(因为它始终只是寻找变量名匹配 - 不是数组),所以我不确定发生了什么。

编辑:我使用的代码点火器版本1.7.2这是最新的稳定版本。

回答

0

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

我用这个当时

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

+0

我使用的是1.7.2版本 - 所以我很难过 – 32423hjh32423 2009-10-01 08:51:10

+0

我认为这应该解决它。 http://codeigniter.com/bug_tracker/bug/7423/ – 2009-10-01 14:55:57

+0

我知道一个是1.7.1,但我猜如果他们已经把它打开了,那么必须有一个原因? – 2009-10-01 15:01:00

2

它看起来像你使用了错误的库。验证库已弃用。尝试使用Form_validation(库/ 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"); 
}