2013-04-16 107 views
0

我custom.php(config文件夾內),如下面笨 - 與代碼中使用內部CI配置文件自定義配置值

$config['myurl'] = 'somesite.com'; 

我的config.php(標準CI),我想設置BASE_URL利用custom.php值,這樣

$config['base_url'] = $this->config->item('myurl'); 

這樣做,我得到了錯誤

Using $this when not in object context in /Volumes/HD 2/work/vnl/app/config/config.php on line 18 

請告訴我爲此目的的正確的代碼?

回答

0

這不會在那裏工作。您想要在此處使用的$this是一個控制器實例,並且在加載標準application/config/config.php時尚未創建。

您可以嘗試添加一個pre_system hook(它剛好在配置對象之前加載),幷包含在一些可以調用的幫助器函數中,並返回application/config/config.php中所需的值。像APPPATH這樣的常用常量將可用。

如果你可以使這個配置變量爲一個常量,也可以工作(只需將define()放在application/config/constants.php的內部)。由於配置文件只是一個普通的php源文件,如果必須的話,您也可以在這裏創建條件。

0

你可以使用數組。 在您的自定義配置文件

$config['myurl'] = 'myurl.com'; 

$config['base_url'] = &$config['myurl']; 

一旦自定義配置文件加載這將改變默認BASE_URL,你也可以只重置BASE_URL元素在你的自定義配置,但是在我看來,這是不建議重設在另一個配置文件中的基礎URL,在項目後期,你可能會失去跟蹤它的設置,爲什麼不在主配置文件中設置它(也許使用條件)?