0

我正在尝试为 set_rule 设置验证消息....这可能吗?

我试过这个

$this->form_validation->set_rules('payment_amount', 'Payment Amount', 'regex_match[/^\d{0,4}(\.\d{1,2})?$/]');
$this->form_validation->set_message('payment_amount', 'This is a test');

我的信息没有改变。

有任何想法吗?

4

2 回答 2

2

您可以通过为规则创建函数来设置自定义验证错误消息。

此代码未经测试。

public function payment_amount($str)
{
    if (preg_match('[/^\d{0,4}(\.\d{1,2})?$/]', $str)
    {
        $this->form_validation->set_message('payment_amount', 'The %s field has an error');
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}

我们CI的回调如下:

$this->form_validation->set_rules('payment_amount', 'Payment Amount', 'callback_payment_amount')
于 2013-01-18T22:30:01.363 回答
0

创建 MY_Form_validation.php 并将您的代码放入其中。

使用文档(http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

扩展原生库

如果您需要做的只是向现有库添加一些功能 - 可能添加一两个功能 - 那么用您的版本替换整个库就有点过头了。在这种情况下,最好简单地扩展类。扩展一个类几乎与替换一个类相同,但有几个例外:

类声明必须扩展父类。您的新类名和文件名必须以 MY_ 为前缀(此项是可配置的。见下文。)。例如,要扩展本机 Email 类,您将创建一个名为 application/libraries/MY_Email.php 的文件,并使用以下命令声明您的类:

class MY_Email extends CI_Email {

}

注意:如果您需要在类中使用构造函数,请确保扩展父构造函数:

class MY_Email extends CI_Email {

  public function __construct()
  {
      parent::__construct();
  }
}
于 2013-01-19T00:30:53.253 回答