我正在尝试为 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');
我的信息没有改变。
有任何想法吗?
我正在尝试为 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');
我的信息没有改变。
有任何想法吗?
您可以通过为规则创建函数来设置自定义验证错误消息。
此代码未经测试。
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')
创建 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();
}
}