【发布时间】:2020-01-27 11:42:26
【问题描述】:
* @Route("/vehicle/{id}", methods={"GET"})
* @Route("/vehicle/categories/", methods={"GET"})
当我尝试在不传递任何参数的情况下访问我的 API vehicleCategories 时,symfony 采用第一个车辆 API 并将“类别”解释为参数。我怎样才能避免这种行为? 两个 API 在同一个控制器中。
【问题讨论】:
-
路由是按顺序加载的,所以将第二种方法的代码移到第一种方法之前(在控制器内部),并在尝试前清除缓存。
-
是的,已经知道了,但这真的是“正确”的解决方案吗?恐怕有人会在某个时候重新排列代码,这会破坏一切......
-
如果你的代码可以被不知道 Symfony 工作原理的人修改,我认为这不会是你未来可能遇到的唯一问题;) PS:无论如何,如果你引入函数式测试可以降低发生这种情况的风险
-
您不能在“id”中添加任何类型的要求吗?例如。它应该始终是一个整数。如果您的路线重叠,您需要创建更好的定义。
-
我会为另一条路线使用不同的名称,因为它与带有参数的路线太接近了。