我的應用程序啓動頁面controlleR;應用程序需要的第一件事是設置一個配置值 - 從url-我想要在整個應用程序上使用,例如localhost/labourbase/client1我需要保持'client1'爲一個常量。cakephp configure ::讀取值丟失'嘗試常量,相同的行爲
在AppController的所以,beforefilter,我給你一個常數(與配置嘗試::但同樣的問題:價值丟失了其他控制器
AppController的
public function beforeFilter() {
$clienturl = explode('/', $_SERVER['REQUEST_URI']);
if (sizeOf($clienturl) == 3) {
$this->__fetchSettings($clienturl[2]);
}
public function __fetchSettings($value) {
debug('from app'.$value);
//Configure::write('CLIENT_URL', $value);
define("CLIENT_URL", $value);
debug('after assign:'.CLIENT_URL); // THIS SHOWS FINE
}
PagesControler:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('home', 'homedemo');
}
用戶sController:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('clientLogin', 'add');
}
並顯示用於測試的值當頁面操作稱爲(頁/顯示
public function display() {
debug(Configure::read('CLIENT_URL')); // IT SHOWS FINE HERE
...
從UsersController,我無法訪問的值:常數來未定義
public function clientLogin($id = null) {
$this->autoRender = false;
$this->RequestHandler->setContent('json', 'application/json');
ob_end_clean();
///debug(Configure::read('CLIENT_URL'));
echo json_encode(CLIENT_URL);
}
而且對其他控制器不可用。嘗試配置::和同樣的事情。
我需要能夠從我的應用程序的任何地方訪問配置值。
你能幫忙嗎?
中有什麼PagesController手動授權用戶的原因何在呢?如果他們先訪問另一個控制器,他們如何檢查?我認爲你應該重新思考一切,並從AppController控制你的應用程序。 –
謝謝@ AKKA-Web;我只認證那裏,看看配置值的問題是否與缺少登錄有關。我的應用程序啓動o頁面控制器,因爲從主頁我需要檢索特定於該URL的數據庫信息,例如http:// localhost/laborbase/client1或http:// localhost/laborbase/client2。我真的不需要登錄,只需檢索一些基於URL的數據庫信息。請參閱編輯。 –
這可以幫助你:http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing和http://stackoverflow.com/questions/11705107/cakephp-routes-prefix –