【问题标题】:Validating multidimensional arrays in Code Igniter with form_validation library使用 form_validation 库在 Code Igniter 中验证多维数组
【发布时间】:2010-12-02 16:19:43
【问题描述】:

我在使用代码点火器的 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'] 为空,它也会始终有效。我检查了库文件libraries/Validation.php,但我看不到它实际工作的任何地方(因为它总是在寻找变量名匹配 - 而不是数组),所以我不确定发生了什么。

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

【问题讨论】:

    标签: php codeigniter validation


    【解决方案1】:

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

    我以前用过这个

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

    【讨论】:

    • 我使用的是 1.7.2 版 - 所以我很难过
    • 我知道一个是为 1.7.1 准备的,但我猜如果他们把它打开了,那一定是有原因的?
    【解决方案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" );
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2016-07-14
      相关资源
      最近更新 更多