我有一个父控制器“ 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}
谢谢!