2011-01-28 40 views
0

我在幾個Symfony模塊中使用了一組常用的javascript。我想輸出當前模塊url-key作爲一個javascript變量,所以javascript可以使用它來爲各種AJAX調用構造url。不過,我找不到從哪裏得到它。Symfony - 獲取模塊URL鍵

$sf_context->getModuleName(); 

返回模塊名稱,但不是它在URL中的顯示方式。我得到我可以從window.location解析模塊名稱,但這不僅看起來有點粗糙,但我很快就會遇到一種情況,我將url構建到不同於生成當前頁面的模塊。

如何獲取當前(或給定)模塊的URL-key?這個映射肯定存在於前端控制器中。

回答

0

您可以獲得當前模塊與URL值:

$sf_params->get('module'); // in templates 

$request->getParameter('module');  // either this 
$this->getRequestParameter('module'); // or this in the actions 

和constucting指向其他模塊,我可以使用url_for(),但我不能讓這個模塊url-value通過這個方法(它會生成一個完整的url)。

1

要得到確切的值,因爲它是寫在網址中,您可以使用custom routings。在symfony中,您可以使用模塊名稱作爲url中的變量創建路由規則。這個變量命名爲你想要的東西,然後在你的動作中可用。

例如(app/*yourAppName*/config/routing.yml):

the_name_of_your_route: 
    url: thisIsAUrl/:variableYouWantWithWhateverCase 
    param: { module: yourModuleName, action: yourActionName } 

url: PARAM甚至可以有正則表達式,並在他們的通配符,如果你喜歡。

所以,現在當你在你的executeYourActionName函數中,將在請求中設置一個名爲variableYouWantWithWhateverCase的變量,確切地說它是如何在url中輸入的。

希望這會有所幫助。

+0

這是優秀的信息,Yzmir,雖然有點超出了我目前正在嘗試做的。不過,我感覺這種感覺稍後會變得非常有用 - 謝謝! – bluescrubbie 2011-01-29 06:23:30