ajaxを使用してSymfony3エンティティを削除しようとしています。Symfony 3:Ajaxを使用してコントローラを呼び出すdeleteAction
問題は$form->isValid()
はfalseを返しますが、フォーム(または子要素)にエラーはありません。私はここで何が欠けていますか?
コントローラ
/**
* @Route("/{profileID}/delete", name="profile_delete")
* @ParamConverter("Profile", options={"mapping": {"profileID": "id"}})
* @Method("DELETE")
*/
public function deleteAction(Request $request, Profile $Profile)
{
$form = $this->createDeleteForm($Profile);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->remove($Profile);
$em->flush();
return new JsonResponse(array('message' => 'profile removed'));
} else {
return new JsonResponse(array('message' => 'error'));
}
}
private function createDeleteForm(Profile $Profile)
{
return $this->createFormBuilder()
->setAction($this->generateUrl('profile_delete', array('profileID' => $Profile->getId())))
->setMethod('DELETE')
->getForm()
;
}
小枝
$.ajax({
url: "{{ path('profile_delete', {'profileID': Profile.id}) }}",
type: 'delete',
success:function(data){
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(textStatus);
console.log(errorThrown);
}
});
あなたはプロファイラでno形式/ログの問題を抱えていますか? – goto
私の推測では、csrfトークンが不足していますが、必須です。 – Yoshi
@goto no、プロファイラは問題を報告しません。 @ Yoshiどのようにトークンを提出する必要がありますか?私はフォームデータ全体をシリアル化して送信しようとしましたが、 'data:{_token:value} 'と同じ結果を返しました。 –