2016-01-21 109 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}”