使用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));
答案 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。