我有一个名为website_check的函数
function website_check($url){
if ($url !=""){
if (preg_match("#^https?://.+#", $url) and fopen($url,"r")){
return TRUE;
}else{
$this->form_validation->set_message('Website url', 'The %s field is invalid');
return FALSE;
}
}else{
$this->form_validation->set_message('Website url', 'The %s field is required');
return FALSE;
}
}
我将此功能用作自定义代码点火器表单验证功能
$this->form_validation->set_rules('website', 'Website', 'callback_website_check');
我在每个控制器中都使用此函数,因此我想将此函数添加到codeigniters表单验证类中,并用作默认验证函数。是不是可以将你的函数添加到codeigniters表单验证类中,如果它是如何完成的呢?
答案 0 :(得分:2)
是。在名为MY_Form_validation.php的应用程序/库目录中创建一个文件。使类名MY_Form_validation也是如此。确保它扩展了CI_Form_validation,并且它调用了父构造函数。然后,将您的规则添加为方法:
class MY_Form_validation extends CI_Form_validation {
public function __construct()
{
parent::__construct();
}
public function website_check($url)
{
if ($url != "") {
if (preg_match("#^https?://.+#", $url) and fopen($url,"r")) {
return TRUE;
} else {
return FALSE;
}
}else{
return FALSE;
}
}
}
您还需要将规则添加到form_validation_lang.php文件中(在application / language / en中)。只需将规则添加到底部,如下所示:
$lang['website_check'] = "The %s field is invalid.";
如果文件不存在,您可以从系统/语言文件夹中复制它。您不应编辑系统文件夹中的文件,因为更新时它们将被覆盖。
答案 1 :(得分:0)
编辑文件'system / libraries / Form_validation.php'并将此新函数插入“CI_Form_validation”类。
function website_check($url){
if (preg_match("#^https?://.+#", $url) and fopen($url,"r")){
return TRUE;
}else{
return FALSE;
}
}
然后编辑文件'language / english / form_validation_lang.php'并附加此项目:
$lang['website_check'] = "The %s field is invalid";
然后将其用作:
$this->form_validation->set_rules('website', 'Website', 'website_check');