带PUT请求的Symfony2 HandlerRequest
我在HandlerRequest中遇到一些问题: 这是我的密码:带PUT请求的Symfony2 HandlerRequest,symfony,put,Symfony,Put,我在HandlerRequest中遇到一些问题: 这是我的密码: public function putAssetAction(Request $request, $id){ $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository( 'BudgetBundle:Asset' )->find( $id ); $form = $this->createForm(
public function putAssetAction(Request $request, $id){
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository( 'BudgetBundle:Asset' )->find( $id );
$form = $this->createForm( new AssetType(), $entity, array('method' => 'PUT') );
$form->handleRequest($request);
问题是表单数据是正确的,但是$form->isValid()
返回false
,因为isSubmitted()
是false
但是$form->bind()
也不起作用,因为这是一个PUT请求,当我执行bind($request)
时,$form->getData()
返回null
我将它用于FosRestBundle和主干网,对于测试请求,我使用chrome extension postman。您可以尝试submit()
而不是handleRequest()
,例如:
$form->submit($request);
Thx,但当我提交时,$form->getData()返回只有id的实体,其他参数为空。这是什么意思?它被设置为
PUT
$this->createForm(新资产类型(),$entity,数组('method'=>'PUT'))
您应该真正使用$form->submit($request->get($form->getName())不赞成直接处理请求
。它仍然可以工作,但在未来(3.0版)将无法工作。@Qoop这就是为什么我尝试使用handleRequest
,在这种情况下,您的代码返回null。