我正在生成一个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
对象代替创建文件?
答案 0 :(得分:1)
是的。
my_data_route_name:
path: /data/data.json
controller: App\YourController::yourAction
$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);
答案 1 :(得分:1)
是的...您可以在JavaScript中使用data
选项,就像这样...选中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 %}
]
});