【问题标题】:set custom validation messages for different fields in Codeigniter为 Codeigniter 中的不同字段设置自定义验证消息
【发布时间】:2014-07-28 09:03:08
【问题描述】:

我正在开发已经构建的 codeigniter 应用程序。我正在研究增强功能。增强功能之一是更改验证消息。所以我检查了验证消息是通过 codeigniter 中的 CI_Form_validation 库驱动的。我想设法使用“set_message”设置自定义消息。

$this->form_validation->set_message('required', 'Please enter %s.');

这会触发所有值为空的字段。哪个好。但是我的应用程序选择字段和单选按钮很少。对于这些消息,应从“请输入 %s”更改为“请选择 %s”。我尝试了“How can I setup custom error messages for each form field in Codeigniter?”中提到的回调方法

我也尝试了以下链接中提到的方法

1) “https://github.com/EllisLab/CodeIgniter/wiki/Custom-Validation-Errors-per-Field”。
2) “http://www.witheringtree.com/2011/09/custom-codeigniter-validation-methods/”。

有没有办法为不同的字段设置不同的自定义消息?如果是这样,请给我建议。应用程序中已经有一个名为 MY_Form_validation 的文件(在第二个链接中提到),其中包含一些自定义函数。自定义验证在该文件中触发,但我编写的自定义函数除外。 (我知道你认为可能是我写了一个错误的代码!但该函数中只有简单的 echo 语句。只是为了测试,我放了一个 echo 语句)。

【问题讨论】:

  • 您提供的第一个链接实际上是我提供答案的问题!!您可以发布一些您已经尝试过的代码吗?这样有助于尝试找出它不适合您的原因。
  • 嘿,马克,回调函数对您的答案进行了一些修改。这些是从回调函数的开头删除 _ 并删除回调和 之间的第二个 _。所以代码改为“function custom_required()”,调用为“callback_custom_required()”。

标签: php codeigniter validation


【解决方案1】:

您将无法创建通用函数来执行此操作,因为 codeigniter 无法知道信息是如何发布的,因为它只是以数组的形式接收信息。

你可以做的是在应用程序/库中创建 MY_Form_validation.php

class MY_Form_validation extends CI_Form_validation
{

    public function required_select($val)
    {
        if ($this->required($val) === FALSE) {
            $this->set_message('required_select', 'Please select %s');
            return FALSE;
        }

        return TRUE;
    }

}

然后在创建表单验证规则时

$this->form_validation->set_rules('dropdown', 'Dropdown', 'required_select');

显然,将下拉列表替换为元素的名称。

希望这会有所帮助!

【讨论】:

  • 感谢罗斯的回答。我在我的代码中尝试了同样的方法。但不幸的是。它没有成功。我在 MY_Form_Validation.php 页面中放置了一个自定义函数,其中放置了所有其他自定义验证消息。但问题是控制甚至不去那个功能。我在代码的开头放置了一个回显退出。所以我使用“回调”功能。它奏效了。无论如何,一旦我有足够的时间,我将再次尝试实现您所说的自定义功能模型。
  • 嘿伙计,很遗憾听到它不起作用,但是,我不知道为什么,因为我一直在使用它。这可能归结为区分大小写,即确保MY_F(和CI_F)是文件名和类名中唯一的大写字母,我也刚刚编辑了设置的消息行应该是'required_select'
猜你喜欢
  • 2014-11-04
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2014-09-27
  • 2014-10-31
  • 1970-01-01
  • 2015-06-22
相关资源
最近更新 更多