首页 文章

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

提问于
浏览
0

我在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','Image path','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

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

    <?php echo validation_errors(); ?>

    编辑:

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

    我假设您在控制器中加载'url'帮助器?

    另外.. CodeIgniter的文档...我相信你应该在你的'set_rules'声明中将'callback_'附加到你的函数名的开头 .

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

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

相关问题