【问题标题】:Symfony2 routing rules from database [closed]来自数据库的 Symfony2 路由规则 [关闭]
【发布时间】:2012-04-13 09:19:35
【问题描述】:

如果我想从数据库中添加路由规则,我应该怎么做。我应该使用https://github.com/symfony-cmf/ChainRoutingBundle 还是有其他更简单的解决方案?

【问题讨论】:

  • 只问具体问题,如果您不知道正确的解决方案,不要责怪任何人。 ;) 关于制作动态路由,我会为 kernel.request 事件使用监听器。 More info

标签: symfony


【解决方案1】:

收听kernel.request 并使用$request->getPathInfo() 在数据库中查询路线。如果找到,请在请求上设置_controller 属性。

$request->attributes->set('_controller', $row['controller']);

如果您正在运行 master 分支 (Symfony 2.1),您的侦听器需要具有大于 32 的优先级,以便它在路由器之前运行。

【讨论】:

    【解决方案2】:

    可能可行的最简单的方法是将路由添加到默认控制器:

    @Route("/page/{slug}", requirements={"slug" = ".+"})

    然后在操作中,从数据库表中查找 {slug}。

    请参阅 @Route 和 /'s in routes。

    【讨论】:

    • 谢谢,但我需要从数据库中添加路由器。我找到了带有详细信息的 sonataAdmin 捆绑包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多