【问题标题】:symfony No route found for "GETsymfony 没有找到“GET”的路由
【发布时间】:2018-11-05 22:27:56
【问题描述】:

我更改了控制器的名称和控制器中的路由以及与之对应的模板。我什至执行了 bin/console debug:route 来检查路由terminal 但是当我输入 http://localhost:8000/admin/programation/circuit 时,我得到一个错误:没有找到“GET /admin/programation/circuit”的路由。 error

备注:在我更改控制器名称和路由之前,一切正常。 enter image description here

【问题讨论】:

  • 你应该给我们看一些截图和一些代码。这非常困难,所以在没有足够信息的情况下找到问题。
  • 我上传了一些截图,但它们出现在某种链接中,您必须单击它才能查看图像。
  • 仅供参考,您可以使用“代码”按钮在问题中输入代码。它所做的只是将代码缩进四个空格。很少有人喜欢点击随机的、难以阅读的链接。
  • 如果您认为我的回答解决了您的问题或对您的解决方案最有帮助,您能否@Nada Touil 接受我的回答。谢谢你。干杯!

标签: symfony


【解决方案1】:

您的路线不正确。给你尝试调用路线

/admin/programation/circuit 

但你的路线是

/admin/programation/circuit/

所以我认为这是你的问题。所以你必须添加 / 或者你应该从你的操作中删除它们。

【讨论】:

  • 我保持原样,我什么也没做,第二天一切正常。我想我所要做的就是更新我的项目
【解决方案2】:

诀窍是,在 symfony 路由系统中,只有当 rotue 的路径完全是 '/' 时,我们才能声明路径以 '/' 结尾的路由(不以任何事物为前缀)。

在我们的例子中,index() 函数指向一个以 '/admin/programation/circuit' 为前缀并以 '/' 结尾的路由 否则下面的路由会变成 '/admin/programation/circuit/' 并且如你所见,它不遵守 convention

我告诉你,就是这样重新定义配置,让index()函数的路径变空。
要以正确的方式定义您的路线,您甚至可以在路线名称前加上前缀(from version 3.4)

/**
 * @Route("/admin/programation/circuit", name="admin_programtion_circuit_")
 */
 class BackofficeProgramationController {

  /**
   * @Route("", name="index")
   */
    public function index() {...}
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 2018-05-30
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2018-01-26
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多