2013-03-08 2 views
1

Мой конфиг config_backend.php() автоматически загружаются выглядит следующим образом:Расширение base_url() к base_url_admin() не работает должным образом в CodeIgniter

<?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

Смежные вопросы