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 - 显示数组字段的单个错误消息的主要内容,如果未能解决你的问题,请参考以下文章