2009-10-20 44 views
7

我想在我的引導文件中捕獲一個URL參數,但經過多次嘗試後,我無法做到這一點。如何訪問引導程序中的URL參數

我已經試過,但它不工作:

protected function _initGetLang() { 
    $frontController = Zend_Controller_Front::getInstance(); 
    $lang= $frontController->getParam('lang'); 
} 

這是做正確的方式?

Thks。

回答

9

您將無法從引導程序訪問請求參數,因爲它尚未完成調度/路由過程。我想你會更好地使用Controller Plugin,根據URL執行操作是他們最擅長的。或者,如果您必須在引導程序中執行此操作,則可以使用getRequestUri()$_GET,或者您可以編寫一個快速腳本來自己解析網址。

編輯:

我做了這樣一些愚蠢的東西,在過去之前,我想通了,插件是如何工作的:

/** 
* Grab the module name without a request instance 
* 
* @return string The module name 
*/ 
public static function getModuleName() 
{ 
    $uri = ltrim($_SERVER["REQUEST_URI"], "/"); 
    $module = substr($uri, 0, strpos($uri, "/")); 
    return $module; 
} 

這將至少給你一個模塊名稱,你可能switch在引導。你應該可以做任何你需要的插件正確完成。

+2

另請參見此Zend Devzone文章:http://devzone.zend.com/article/3372 – 2009-10-20 11:36:20

+0

謝謝你們的答案,我之前嘗試過插件方法,但它沒有做我想做的事,我會閱讀'lonut G. Stan'這篇文章來檢查我做錯了什麼,如果這樣做不行,我會做'Typeoneerror'建議的$ _GET事情。 – elbicho 2009-10-20 14:12:41

相關問題