【问题标题】:How to route in symfony2?如何在 symfony2 中路由?
【发布时间】:2012-10-10 14:39:44
【问题描述】:

嗯,在我的routing_dev.yml 中有以下内容

_welcome:
    pattern:  /
    defaults: { _controller: AcmeDemoBundle:Welcome:index }

homepage:
    pattern:   /
    defaults: { _controller: AcmeDemoBundle:Ideup:index }

aboutme:
    pattern:   /aboutme
    defaults: { _controller: AcmeDemoBundle:Ideup:about }

_ideup:
    resource: "@AcmeDemoBundle/Controller/IdeupController.php"
    type:     annotation
    prefix:   /ideup

_form:
    resource: "@AcmeDemoBundle/Controller/FormController.php"
    type:     annotation

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_main:
    resource: routing.yml

我正在尝试一个简单的表格:

<form action="{{ path('_form') }}" method="POST" id="contact_form">

但我不断收到以下异常:"Route "_form" does not exist."

我只是不知道还能去哪里寻找和做什么,有什么想法吗?

【问题讨论】:

  • 一些提示:(1)我建议将_ 用于私人路线,您不希望人们在正常访问时访问的路线,但只有当您使用获取 5 个最新的博客文章,并删除公共路线的_。 (2) / 路径有 2 个路由,删除一个 (3) 使用下划线分隔路由中的单词 (about_me) (4) 将其放在 routing.yml 中,仅加载 _dev 文件如果你在开发环境中(阅读更多关于环境here
  • 谢谢@WouterJ,感谢您的提示

标签: php symfony routing


【解决方案1】:
_form:
  resource: "@AcmeDemoBundle/Controller/FormController.php"
  type:     annotation

这只会从 FormController 加载带注释的路由。

例如:

/**
 * @Route("/my/route", name="my_route")
 */
public function myRouteAction() { ... }

如果你想要一个_form 路由,你应该从 FormController 加载所有带注释的路由或以其他方式定义它:

_form:
  pattern: /path/to/your/form
  defaults: { _controller: AcmeDemoBundle:Form:myFormAction }

当然myFormAction()应该存在于FormController中。

【讨论】:

  • 好的,那么还有什么其他方法可以做到吗?没有annotations,如果可能的话
  • 我稍微更新了答案。例如,请参阅 .yml 中的 homepage 路由。
猜你喜欢
  • 1970-01-01
  • 2013-04-30
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多