2009-09-30 65 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"); 
}