2013-03-08 53 views
1

我的配置config_backend.php(自動加載)正常工作是這樣的:擴展BASE_URL()來base_url_admin()不是笨

<?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加載,但我不知道如何管理出現在那裏?

任何想法我做錯了什麼?

回答

2

你應該返回my_admin_url配置,因爲你沒有選擇配置項目,你期望它返回它和/或配置返回數組鍵名稱下的變量,即$my_admin_url。但要返回它,你可以這樣做:

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

哇,它的工作,謝謝。只有其他人在使用幫助功能時將$ this更改爲$ ci。另外這兩行'ci-> config-> load('config_backend'); $ ci-> load-> helper('url');'在助手中不是必須的。 – Derfder 2013-03-08 13:21:34