Wie render json, in einem Zweig, in Symfony2
Die Frage ist, wie das übergeben eines json, twig Rendern einer Vorlage. Ich habe versucht, den pass eines json mit JsonResponse-Objekt, aber ich nicht finden den Weg zum Rendern der Vorlage.
TarifasController.php
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Controller\Admin;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use AppBundle\Entity\Tarifa;
/**
*
* @Route("/tarifas")
*/
class TarifasController extends Controller
{
/**
* @Route("/", name="tarifa_index")
*/
public function indexAction()
{
$entityManager = $this->getDoctrine()->getManager();
$tarifas = $entityManager->getRepository('AppBundle:Tarifa')->findAll();
return $this->render('admin/tarifas/index.html.twig', array('tarifas' => $tarifas));
//return new JsonResponse(array('json_tarifas' => json_encode($tarifas)));
}
}
index.html-Code.Zweig
{% extends 'admin/layout.html.twig' %}
{% block body_id 'admin_post_show' %}
{% block main %}
<h1>{{ 'label.project_list'|trans }}</h1>
<table id="tarifas_index" class="table table-striped">
<thead>
<tr>
<th>{{ 'Id' }}</th>
<th><i class="fa fa-user"></i> {{ 'label.title'|trans }}</th>
<th><i class="fa fa-calendar"></i> {{ 'label.summary'|trans }}</th>
<th><i class="fa fa-calendar"></i> {{ 'label.content'|trans }}</th>
<th><i class="fa fa-cogs"></i> {{ 'label.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for tarifa in tarifas %}
<tr>
<td>{{ tarifa.id }}</td>
<td>{{ tarifa.codigo }}</td>
<td>{{ tarifa.nombre }}</td>
<td>{{ tarifa.razon }}</td>
<td>
<div class="item-actions">
<a href="{{ path('project_detail', { id: tarifa.id }) }}" class="btn btn-sm btn-default">
{{ 'action.show'|trans }}
</a>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
$(document).ready( function () {
$('#tarifas_index').DataTable({
data: tarifas
});
} );
</script>
{% endblock %}
Wie kann ich passiere ein json aus dem controller, um es in den DataTable (im twig-template), aber mantaining das Rendern in diesem controller. Bitte, können Sie mir helfen?
- Kannst du bitte Kochen Sie Ihre code-Beispiele, bis Sie zeigen nur die notwendigen Teile?
- Ich don ' T undestand es... brauchen Sie wieder eine JSON-encode string als Antwort, von Aktion oder möchten Sie ein JSON-Objekt als Daten-provider, die in Ihrer Vorlage?
- Ja, ich möchte an einem json als Daten-provider, aber ich weiß nicht, wie Sie dies tun, aus dem controller zu Rendern einer Vorlage
- warum gehst du nicht einfach decodieren des json-Daten vor dem senden an Zweig? dann können Sie es als array oder Objekt, wie Sie in Ihrem Zweig-Datei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verstehe nicht, was Sie versuchen zu erreichen, aber Sie können senden Sie einfach json codiert und normale Daten auf Ihren ast, um es zu benutzen, wie Sie wollen,
Wiedergegeben werden können, wie dies
abrufen und wie diese im Zweig,