首页 > 解决方案 > 在 symfony 3.4 中根据 ajax 请求持久保存到数据库

问题描述

在点击树枝后,我想在 ajax 请求上坚持到数据库,这是 ajax 部分:

    <script>
        $('.btn').click( function(){
            var personnage = $(this).html()
            $.ajax({
                url: "{{ url('ajax_route') }}",
                type: "POST",
                dataType: "json",
                data: {
                    "personnage": personnage
                },
                async: true,
                success: function (data)
                {
                    console.log(data)
                    $( '#titre' ).text(data.titre);
                    $( '#producteur' ).text(data.producteur);
                }
            })
        });


    </script>

在这里,我将一些数据“人物”发送到控制器操作,我尝试将其持久化到数据库,这是控制器部分:

public function ajaxAction(Request $request)
 {
     public function ajaxAction(Request $request)
 {
     if (!$request->request->has('personnage')) {
         throw new BadRequestHttpException('personnage must be defined');
     }

     /* on récupère la valeur envoyée par la vue */
     $personnage = $request->request->get('personnage');
           //add to database
       $test = new test();
             $em=$this->getDoctrine()->getManager();
             $em->persist($test);
             $em->flush();
           //add to database
     return new JsonResponse([
         'titre' => 'ajax request received',
         'producteur' => 'Successfully',
     ]);
 }
 }

注意:当我删除“添加到数据库”部分时,ajax 请求正确,我得到响应数据!但是当我尝试将数据持久化到数据库时,它会引发 ajax 错误 500:

1 AJAX 请求方法类型状态 URL 时间配置文件 POST xhr 500 http://localhost/myprojet/web/app_dev.php/ajax_request 1698ms 95ae4b

标签: ajaxsymfonyrequest

解决方案


推荐阅读