我正在尝试使用fosRestBundle更新实体,但我不知道如何正确地执行此操作。
我使用doctrine和FOSRestBunble作为背面和角度(SPA应用程序)
我想更新实体的属性。 在我的EntityRestController中,我只有GET方法
Angular方面,我没有完整的对象,只是一个id,所以我试图在有效载荷中发送数据(我的实体的id和我要更新的数据)但是我不知道我不知道如何在我在EntityRestController中创建的Patch方法中获取有效载荷数据。
这是做这件事的好方法吗?我的意思是 : 1.在有效载荷中传递数据 2.通过id获取实体 3.更新实体
或者我必须创建一个控制器吗?因为我必须在之后添加创建操作,我认为我必须实现自定义验证
感谢您的帮助
编辑:这是我尝试做的事情
> php app/console route:debug
api_get_buildings GET ANY ANY /api/buildings.{_format}
api_get_building GET ANY ANY /api/buildings/{id}.{_format}
api_patch_building PATCH ANY ANY /api/buildings/{request}.{_format}
我的补丁方法:
public function patchBuildingAction($request)
{
return $request->getContent();
}
当我用PATCH方法调用“http://myWebSide.dev/api/buildings”时,我有一个symfony错误
No route found for "PATCH /api/buildings": Method Not Allowed (Allow: GET, HEAD)
与GET方法相同的是
我的fosrest配置:
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json
我的routing.yml:
buildings:
type: rest
resource: "AppBundle:BuildingRest"
name_prefix: api_