Symfony JsonResponse返回渲染模板

时间:2015-09-09 12:03:26

标签: symfony templates jsonresponse

使用ajax创建新元素后,我从我的控制器中获取了一个JsonResponse。现在我想更新元素列表。因此,我希望将新表作为我的JsonResponse中的变量。

如何在Controller Action中渲染模板?

        $em = $this->getDoctrine()->getManager();
        $entity = $em->getRepository('MyBundle:Entity')->find($id);
        $em->persist($entity);
        $em->flush();

        $template = $this->render('MyBundle:Entity:show.html.twig');
        return new JsonResponse(array('message' => 'Success!'), 200);

当我添加"模板" -line时,我的jsonresponse会出错。该实体已正确添加到数据库中。

我的模板。 show.html.twig

    <table class="table table-responsive table-hover">
    <thead>
        <tr>
            <th>Titel</th>
            <th>Link</th>
        </tr>
    </thead>
    <tbody>
    {% for entity in entities %}
        <tr>
            <td>{{ entity.titel }}</td>
            <td>{{ entity.link }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>

我的电话

$template = $this->render('MyBundle:Entity:show.html.twig', array('entities'=> $entities));

1 个答案:

答案 0 :(得分:0)

不要使用json响应,即将数据或对象等数据发送到视图。你想使用$this->render然后作为ajax成功函数,你可以有这样的东西

function(msg){

    $e = $('your_element'); // this is where you want to display the received data
    $e.html(msg);
}

有关ajax,Symfony2和Json的更多信息,请参阅This