2012-10-19 59 views
1

我在symfony的1.4symfony中從URL跳過控制器名稱1.4

對於靜態頁面現有的項目中,我們使用一個模塊頁,其中給出以下網址:

http://www.example.com/page/aboutus 
http://www.example.com/page/faq 
http://www.example.com/ (page/index method, points to method page/home) 

對於新的要求,我們需要URL格式:

http://www.example.com/aboutus 
http://www.example.com/faq 
http://www.example.com/ (index/home method of page module; working as page is default module) 

有16個這樣的靜態頁面和所有正在page模塊上市。截至目前,我打算創建16個新模塊,將每個靜態頁面放在index新模塊的方法中,但我想它是一個糟糕的解決方案,希望symfony絕對不是用於這種方式的。

有什麼辦法可以跳過URL的模塊名稱,至少對於默認模塊?

回答

1

使用的symfony的路由特徵說明!

routing.yml

aboutus_page: 
    url: /aboutus 
    param: { module: page, action: aboutus } 

faq_page: 
    url: /faq 
    params: { module: page, action: faq } 

home_page: 
    url: /
    params: { module: page, action: index } 

# your other routes 
# ... 

actions.class.phppage模塊看起來像:

class pageActions extends sfActions 
{ 
    public function executeAboutus (sfWebRequest $request) 
    { 
     // ... 
    } 

    public function executeFaq (sfWebRequest $request) 
    { 
     // ... 
    } 
2

你可能想使用一個重寫規則作爲 http://corz.org/serv/tricks/htaccess2.php

+0

感謝WFahl。網址重寫絕對是其他解決方案,並且創建16個模塊要好得多。我肯定會更喜歡超過16個模塊。然而,如果symfony中有任何buildin支持,我會感到驚訝嗎? Codeigniter支持從URL中跳過控制器/模塊名稱(不確定其他框架),這是非常普遍的要求,我希望symfony也必須爲此提供一些構建支持。 +1提示mod重寫解決方案。如果在symfony 1.4中沒有內置的支持來跳過模塊名稱,我會接受這個答案。 –

相關問題