作为回复ajax symfony 2的回复?

时间:2015-08-10 00:02:30

标签: javascript php jquery ajax symfony

我有一个非常简单的系统,普通用户,黄金相当于用户。起初它只是在routing.yml中创建了一个路径,我解决了执行动作的函数并返回到同一个视图并完美地工作。现在实现ajax以使流程更快。 当我单击按钮时,运行Ajax,指向控制器的路径指示我执行相关操作,所有操作都已成功执行,但在返回同一视图时,无法正常工作。 Ajax采用错误路径,并由我编程的警报屏幕打印。总而言之,一切正常,直到我必须回到Ajax行动。

listarUsuariosParaAscender.html.twig

    //..some code..//
    <p id="{{ usuario.id }}" >Ascender a Usuario Gold</p>
    //..some code..//

    {% block javascripts %}
        {{ parent() }}
        <script type="text/javascript" src=" {{ asset('bundles/MICARPETA/js/jquery-2.1.4.min.js') }} "></script>
        <script type="text/javascript">

        $(document).ready(function(e) {

            $("p").click(function(e){
                var id = $(this).attr('id');
            $.ajax({
                                type: "POST",
                                url: "{{ path('ascender_a_gold') }}",
                                data: { 'id' : ' ' + id + ' ' },
                                error: function(){
                                      alert("Error petición ajax");
                                },
                                success: function(data){                                                    

                                      alert(data);

                                }
                    });
            });
        });
        </script> 

{% endblock %}

的routing.yml

ascender_a_gold:
    pattern: /admin/ascenderAGold
    defaults: { _controller: ProyectoAdminBundle:Admin:ascenderAGold }

AdminController.php

public function ascenderAGoldAction(){
        $id = $_POST['id'];
        $em = $this->getDoctrine()->getManager();
        $user = new User();
        $roleviejo = new Role();
        $rolenuevo = new Role();
        $usuario = $em->getRepository('AtajoBundle:User')->findOneUser($id);
        $roleviejo = $em->getRepository('ProyectoSeguridadBundle:Role')->findByRoleJoinUsuario($id);
        $rolenuevo = $em->getRepository('ProyectoSeguridadBundle:Role')->findByRole('ROLE_USER_GOLD');

        $usuario->setRoles($rolenuevo);

        $em->persist($usuario);
        $em->flush();

        //Until here everything works well , when I have to return to Ajax , ajax it takes the path of 'error'    

        $data = 'hello';

        return new JsonResponse(array('data' => $data)); 
        }

1 个答案:

答案 0 :(得分:0)

控制器的最后两行没有任何问题,因此不应该出错。唯一可能缺少的是包括JsonResponse类。您是否在控制器顶部获得了以下使用声明?

use Symfony\Component\HttpFoundation\JsonResponse