Codeigniter - 显示数组字段的单个错误消息

Posted

技术标签:

【中文标题】Codeigniter - 显示数组字段的单个错误消息【英文标题】:Codeigniter - Displaying individual error message for array fields 【发布时间】:2012-01-16 04:39:12 【问题描述】:

拥有一系列客户,每个客户都有各自的详细信息。这是一个非常简单的例子。

<input type="text" name="customer_names[]" />

在 codeigniter 中,每个 customer_name 都是必需的$this->form_validation->set_rules('customer_names[]','Customer Names','required');

如果任何客户名称为空,validation_errors(); 会为整个数组显示一条消息。

如何获取该客户的个别错误消息?

注意:echo form_error('customer_names[0]'); 是我试图在 customer_name 0 留空的地方实现的目标。

【问题讨论】:

根据文档,应该可以:codeigniter.com/user_guide/libraries/… 你在看什么? 【参考方案1】:

查看Form Validation 文档,特别是Using Arrays as Field Names 部分,我认为您需要明确命名您的输入 通过在名称中包含索引以使 form_error() 方法按您的意愿工作。

所以为了form_error('customer_names[0]') 工作,实际上必须有一个名称为customer_names[0] 的输入。

【讨论】:

这对我来说效果很好,尽管我必须用它们各自的键明确命名我的字段才能有用。这个answer here 说 CodeIgniter 3 有一个功能。 @machineaddict 的答案与此相同,但我不需要在规则名称中指定索引。【参考方案2】:

我在使用 CodeIgniter 2.1.3 时遇到了同样的问题。我已经这样解决了:

输入是:

<input type="text" name="customer_names[0]" /> <input type="text" name="customer_names[1]" /> ...

表单验证为:

$this->form_validation->set_rules('customer_names[0]','Customer Names','required'); $this->form_validation->set_rules('customer_names[1]','Customer Names','required'); ...

错误显示如下:

echo form_error('customer_names[0]'); echo form_error('customer_names[1]'); ...

【讨论】:

以上是关于Codeigniter - 显示数组字段的单个错误消息的主要内容,如果未能解决你的问题,请参考以下文章

模型数组的 Codeigniter 错误

CodeIgniter 在带有 ajax 回调的表单字段旁边单独显示错误

是我做错了,还是在使用数组作为字段名时 CodeIgniter 表单验证库中存在错误?

使用连接(codeigniter)从单个字段中检索和打印逗号分隔符后的值

在 PHP,Codeigniter 中提交带有空字段的表单时出现一些错误

如何在 Codeigniter/PHP 中合并两行并获取单个数组?