Как я могу использовать таблицы данных с объектом данных? - PullRequest
0 голосов
/ 29 января 2019

Я создаю файл json, чтобы использовать его позже в моих таблицах данных:

$data = $serializer->serialize($table, 'json');
$file = 'data/data.json';
file_put_contents($file, $data);

Интеграция в мою таблицу данных:

var table = $('.table').DataTable({
    "ajax": {
      "url": "{{ absolute_url(asset('data/data.json')) }}",
      "dataSrc": ""
    },

Возможно ли вместо создания файла,использовать объект data напрямую?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Да ... вы можете использовать опцию data в своем javascript, например так: отметьте https://datatables.net/examples/data_sources/js_array.html

<?php
// controller
   return $this->render("myTemplate.html.twig", ["data" => $data]);

и ваш шаблон будет выглядеть ...

var table = $('.table').DataTable({
    "data": {{ data|json_encode|raw }},
    "columns": [
        ....
    ]

Обновление

Поскольку вы используете специальный сериализатор, ваш код будет выглядеть

<?php
// controller
   $data = $serializer->serialize($table, 'json');
   return $this->render("myTemplate.html.twig", ["data" => $data]);

, а шаблон веточки должен быть ...

  var table = $('.table').DataTable({
    "data": {{ data|raw }},
    "columns": [
      {% for key, value in columns %}
       { "data": "id"},
      {% endfor %}

    ]
  });
0 голосов
/ 29 января 2019

Да, это так.

  1. Создать маршрут, который отвечает data / data.json
my_data_route_name:
    path: /data/data.json
    controller: App\YourController::yourAction
Генерация данных JSON
$data = []; // Get your data

// You can serialize it and return a Response with the content-type
$json = $serializer->serialize($data, 'json');
return new Response($json, 200, [
    'content-type' => 'application/json'
]);

// or let the symfony serializer handle it.
return $this->json($data);
...