Symfony控制器响应不刷新页面

时间:2017-10-26 12:26:17

标签: php symfony http-redirect

我有一个Symfony应用程序,其中admin角色具有可以激活/停用用户的按钮。

public function activeActionSchedule(Request $request, $id , User $user)
    {
        $em = $this->getDoctrine()->getEntityManager();

        if($user->getIsActive() == 1){
            $user->setIsActive(0);
        } else {
            $user->setIsActive(1);
        }

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

        return $this->redirectToRoute('view', array('id' => $user->getLoanId()->getId()));
    }

当我点击该按钮时,它会转到此路径,并在执行后完全刷新页面(重定向)。 这是一种如何不返回任何会刷新/重定向到另一个页面的方式,所以它会像Ajax调用一样工作吗? 如果不可能并且使用Ajax是必要的,我想无论如何我需要修改响应,如何?

2 个答案:

答案 0 :(得分:2)

您正在使用PHP和HTML,因此无法实现。如果你真的不想重新加载页面,你必须使用Ajax,就像你说的那样

答案 1 :(得分:1)

你可以点击按钮发送ajax请求

    $.ajax({
        type: "POST",
        url: "/user",
        data: {id: id},
        success: function (result) {
             alert(result.data);
             alert(result.msg);
        }
    });

您可以通过

获取在控制器中发送的参数
    $post_data = $request->request->all();

这将返回一个参数数组

在控制器中你可以发送响应,如

        $json_data = array(
            'data' => 100,
            'msg' => "Success"
        );
        $response = new Response(json_encode($json_data));
        $response->headers->set('Content-Type', 'application/json');
        return $response;