我正在编写一个API来提高我的个人PHP技能。我有两个问题:
recette.recetteById:
path: /api/recette/{id}
controller: App\Controller\RecetteController::recetteById
recette.subRecette:
path: /api/recette/sub-recette
controller: App\Controller\RecetteController::subRecette
当我转到/api/recette/sub-recette
时,它显示的是recetteById
函数的返回值,而不是subRecette
,看起来/sub-recette
被用作/{id}
。
我的recetteById
只是一个返回id为json的函数,所以当我转到/api/recette/sub-recette
时,它显示sub-recette
。为什么路由不调用我的subRecette
函数?
当我转到/api/recette/sub-recette
时,我必须做些什么来调用subRecette
函数
按ID重新设置:
public function recetteById($id) {
return $this->json($id);
}
1条答案
按热度按时间yc0p9oo01#
在编辑问题并更仔细地阅读之后,我明白了问题是什么。
路由的工作原理是先匹配者获胜,对它来说,
sub-recette
看起来很像一个完全有效的ID。为了避免这种情况,如果您的ID是数字,您可以执行以下操作:
另一种实现方法是将
subRecette
放在recetteById
之前,但这很容易出错。