【发布时间】:2012-04-13 09:19:35
【问题描述】:
如果我想从数据库中添加路由规则,我应该怎么做。我应该使用https://github.com/symfony-cmf/ChainRoutingBundle 还是有其他更简单的解决方案?
【问题讨论】:
-
只问具体问题,如果您不知道正确的解决方案,不要责怪任何人。 ;) 关于制作动态路由,我会为 kernel.request 事件使用监听器。 More info
标签: symfony
如果我想从数据库中添加路由规则,我应该怎么做。我应该使用https://github.com/symfony-cmf/ChainRoutingBundle 还是有其他更简单的解决方案?
【问题讨论】:
标签: symfony
收听kernel.request 并使用$request->getPathInfo() 在数据库中查询路线。如果找到,请在请求上设置_controller 属性。
$request->attributes->set('_controller', $row['controller']);
如果您正在运行 master 分支 (Symfony 2.1),您的侦听器需要具有大于 32 的优先级,以便它在路由器之前运行。
【讨论】:
可能可行的最简单的方法是将路由添加到默认控制器:
@Route("/page/{slug}", requirements={"slug" = ".+"})
然后在操作中,从数据库表中查找 {slug}。
请参阅 @Route 和 /'s in routes。
【讨论】: