У меня есть родительский контроллер «UserController» и дочерний контроллер «UserCartController». В отличие от всех других контроллеров, FOSRest отказывается от следующего определения:
class UserController extends AbstractFOSRestController
{
// [...]
/**
* @param User $user
* @return View
*/
public function getUserAction(User $user): View
{
return new View([]);
}
}
Это приводит к следующей ошибке:
Every parent controller must have `get{SINGULAR}Action(\$id)` method where {SINGULAR} is a singular form of associated object in [...]/config/../src/GDS/[BundleNameHere]/Resources/config/user_routes.yaml (which is being imported from "[...]/config/routes.yaml"). Make sure there is a loader supporting the "rest" type.
Как только я меняю заголовок следующим образом ...
class UserController extends AbstractFOSRestController
{
// [...]
/**
* @param User $user
* @return View
*/
public function getUserAction($id): View
{
return new View([]);
}
}
Ошибка больше не появляется. Какова причина? Во всех других контроллерах вы можете разрешать экземпляры модели.
В результате мои маршруты выглядят не очень элегантно. :)
/api/users/{id}.{_format}
# vs.
/api/carts/{cart}.{_format}
Заранее спасибо!