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

标签 php codeigniter 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']

,我的 Controller 中的操作需要看起来像这样
$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,这是最新的稳定版本。

最佳答案

您似乎使用了错误的库。验证库已弃用。尝试改用 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" );
}

关于php - 使用 form_validation 库在 Code Igniter 中验证多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498505/

相关文章:

javascript - 使用 ajax 发布错误信息

php - HTACCESS 问题导致 401 和多个 302

mysql - CodeIgniter- 事件记录插入新的或更新重复

javascript - 我试图从特定 div 的元素中获取所有内容,然后验证它们

perl - 如果传入未定义的值,则使用 Params::Validate 设置默认值

php - 数组返回同一行的 43 个实例 - CodeIgniter PHP MySQL

php - 无法将 C :/php/php7apache2_4. dll 加载到服务器:%1 不是有效的 Win32 应用程序

php - Codeigniter 购物车 - 在披萨上添加番茄酱

codeigniter - paypal notify_url 时的路由问题

mysql - 删除由多个属性唯一标识的重复记录/对象