自定义函数上的Codeigniter表单验证错误消息

时间:2014-04-23 20:27:51

标签: php codeigniter

我在Codeigniter中为表单验证创建了一个自定义函数。 它挂钩到URL Helper,我通过创建一个MY_url_helper实现了这一点。

帮助修改:

function valid_url($str) {
   $pattern = "/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i";
   if (preg_match($pattern, $str)) return TRUE;
   else return FALSE;
}

/* End of file MY_url_helper.php */
/* Location: ./application/helpers/MY_url_helper.php */

我如何调用验证:

  

$ this-> form_validation-> set_rules(' image','图片路径',' valid_url');

语言文件:

$lang['valid_url']  = "The %s field must contain a valid URL.";

/* End of file form_validation_lang.php */
/* Location: ./system/language/english/form_validation_lang.php */

但是在提交表单时它并没有显示任何错误消息。 如果我更改valid_url函数以回显true和false,它将执行该操作。所以它运行该功能。

如何显示错误消息?

1 个答案:

答案 0 :(得分:0)

您是否在视图中打印验证错误?在视图中的表单上方添加此行,然后查看是否打印出来。

<?php echo validation_errors(); ?>

编辑:

基于你回复的一些事情......我从来没有真正使用过&#34;帮助&#34;作为验证的回调...我总是在控制器中定义回调,在那里进行验证。其他人可能会详细说明您是否可以使用辅助函数作为回调。您可能必须在控制器中声明验证功能。您还可以从控制器中声明的回调中返回辅助函数,以避免在两个位置重写助手。这可能有用。

我假设您正在加载“网址”。控制器中的助手?

另外..还有CodeIgniter的文档......我相信你应该追加回调_&#39;在&#39; set_rules&#39;中的函数名称的开头声明。

$this->form_validation->set_rules('image', 'Image path', 'callback_valid_url');

http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks