CodeIgniter - 如何在帮助器中访问base_url()?

时间:2012-09-24 13:09:00

标签: codeigniter

我正在扩展网址助手(MY_url_helper)。如何在我的帮助函数中访问base_url()?我实际上覆盖了base_url(),所以我需要调用原始的base_url。

修改1:

这不起作用:

$CI =& get_instance();
$CI->load->helper('url');
$base_url = $CI->base_url();

1 个答案:

答案 0 :(得分:2)

不幸的是,在全局php命名空间中定义了内置辅助函数,一旦定义了一个名为base_url的函数,你将无法定义另一个具有相同名称的函数,所以你不能从原始助手“somwehere”加载原始base_url函数并使用它。

因此,CI的内置帮助文件在if块中定义函数:

if ( ! function_exists('FUNCTION_NAME'))
// ...
}

因此,即使您在被覆盖的版本中加载原始帮助文件,它也不会产生致命错误,但也没有做任何有意义的事情。

在具体案例中,base_url的实现基本上是:

return get_instance()->config->base_url($uri);

您可以将其提升为被覆盖的base_url版本。