2016-01-21 105 views
1

我是symfony的新手。作爲exersice我真的想做出一些基本的cms.And我想知道這是路由形式給出錯誤的:Symfony(有點動態?)路由

/** 
    * @Route("/back-office/", name="back-office") 
    */ 
    public function indexAction(Request $request,$page="") 
    { 
     switch($page){ 
     case "": 
      return $this->render('CmsBundle:BackOffice:index.html.twig'); 
     break; 
     default: 
      return $this->render('CmsBundle:BackOffice:site-map.html.twig'); 
     break; 
     } 
    } 

這是我的YAML confing:

back_office_pages: 
    path: /{page} 
    defaults: { _controller: CmsBundle:BackOffice:index} 

通過這種形式給出我不會必須在yaml文件中配置每個路由。由於路線可能不同。但我不太確定這是symfony的做事方式,所以我決定徵求意見。

我正在努力實現的目標: 可以說我們有一個用戶後臺編程時間較短或者根本就沒有,並且他對CMS不屑一顧。目標是使用一些用戶界面添加前端頁面。然後我們將頁面(slug)存儲在數據庫中。在索引操作中,我們檢索這些數據。從數據庫中,我們也可以將模板分配到一個頁面(我們需要用戶至少有一些HTML + CSS +樹枝)。

所以我們要做的就是讓用戶添加的網頁: 例如:畫廊,聯繫人 我們檢查請求的URL 如果請求的頁面是從數據庫中排列在我們返回相關頁面的模板。

注意: 如果你不同意這種方法,請不要打擊我,但eplain爲什麼這是錯的。因爲正如我所說,我對這個框架還是一個新的東西。

+0

您正在使用的註釋,而不是YAML配置路由的工作,不是嗎? – Lumen

+0

好吧,據我瞭解的文件,我需要他們兩個。註釋和YAML配置例如: back_office_pages: 路徑:/ {PAGE} 默認值:{_controller:CmsBundle:的BackOffice:指數} 我心底把它添加到問題 – Newbie

+0

您應該重命名'path'爲'頁面「,反之亦然。另外最好有一個動作,每頁一個模板。 –

回答

1

試試你的路由設置爲:

back_office_pages: 
    resource: "@CmsBundle/Controller/" 
    type: annotation 

設置路由註解你CmsBundle內。

然後,你的動作要使用URL「/後勤/ {PAGE}」