【发布时间】:2021-10-27 17:36:15
【问题描述】:
我正在尝试了解 Symfony 5 路由的工作原理。
如果在我的项目中我有 2 个具有相同路由名称的不同控制器会发生什么?
例如在Controller1.php中:
/**
* @Route("/publisher/notification_update/")
*/
在Controller2.php中:
/**
* @Route("/publisher/notification_update/")
*/
然后从树枝内的某个地方,我有一个表单,如下调用此路由:
<form name="notification" id="notification{{message.notification_id}}"
action="/publisher/notification_update/" style="display:none"
method="post">
<input hidden class="hiddenNotificationsForUser" type="text" id="{{message.notification_id}}"
value="{{message.message}}" onclick="this.form.submit();" />
</form>
在这种情况下会发生什么?会出现错误,还是会转到按字母顺序找到的第一条路线?
【问题讨论】:
-
我想你可以尝试一下,看看会发生什么 ;) 破坏发现的乐趣:你不会得到错误,并且使用第一个匹配项 (Controller1)。
-
并且路由不按字母顺序匹配,而是按照它们定义的顺序与可选优先级匹配。 bin/console debug:router 将向您显示已定义的路由以及它们匹配的顺序。