将base_url()扩展为base_url_admin()在CodeIgniter中无法正常工作

时间:2013-03-08 13:11:21

标签: php codeigniter

我的配置 config_backend.php (自动加载)如下所示:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config['my_admin_url'] = 'admin';

我的帮助 admin_helper.php 如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

function base_url_admin()
{
    $ci =& get_instance();

    $ci->config->load('config_backend');
    $ci->load->helper('url');

    return base_url().$my_admin_url.'/';
}

视图中的代码如下所示:

<a href="<?php echo base_url_admin(); ?>">Admin</a>

但问题是,而不是正确的输出,如:

<a href="http://localhost/admin">Admin</a>

链接如下:

<a href="http://localhost">Admin</a>

有趣的是,当我做帮助时,例如这样:

function base_url_admin()
{
    $ci =& get_instance();

    $ci->config->load('config_backend');
    $ci->load->helper('url');

    return "idiot";
}

输出如下内容:

http://localhost/admin/idiot

所以,我认为admin_helper已加载,但我不知道管理员是如何出现的?

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

您应该返回my_admin_url配置,因为您没有获取配置项,您希望它返回它和/或配置返回数组键名称下的变量,即$my_admin_url 。但要归还它,你可以这样做:

return base_url() . $ci->config->item('my_admin_url') . '/';