javascript - Twig 到 Js 的数据不完整数组

标签 javascript php symfony twig

我想在 JavaScript 中访问我的 Twig 中的数据数组,但它永远无法获取完整的数组。

我有一个 Controller ,它返回我在 Twig 中使用的对象数组,这是存储的对象的示例:
enter image description here

现在,我想在我的 javascript 中访问它,我尝试了很多方法,但最终还是在我的 div 中使用了数据:(随后 https://symfony.com/doc/current/frontend/encore/server-data.html?fbclid=IwAR2BHWMl-OJSytkfbNgaNUFRefC85bTPw63ymvuC9Q4zPlKxZZoKZ7dvH9E )

<div class="table_congesService" data-conges-service="{{congesService|json_encode|e('html_attr') }}">

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var tableCongesService = document.querySelector('.table_congesService');
    var listCongesService = tableCongesService.dataset.congesService;
    console.log(listCongesService);
  });
</script>

但是,当我使用 console.log 显示结果时,我只有 id,而不是完整的结构: enter image description here 我缺少什么?我是网络新手,找不到问题所在。它与编码前的数据结构有什么关系吗?或者我应该使用的选项?

最佳答案

看起来对象的属性都是私有(private)的,除了id_conge。这就是 json_encode 仅对公共(public)属性 id_conge 进行编码的原因。

您可以通过实现 \JsonSerialized 来序列化具有私有(private)属性的对象,如here所述。或者将对象导出为数组,其中包含 JS 中所需的所有属性。

关于javascript - Twig 到 Js 的数据不完整数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942509/

相关文章:

javascript - Android 工作室 - 调试 Javascript

php - ElasticSearch,如何按其他字段排序聚合?

php - 交响乐 2 : Flash message on login/logout

symfony - 在模板中使用反式

jquery - 将 Div 滚动到底部时从服务器加载数据

php - JavaScript 过期 header 不能设置为 12 个月

php - 如何将图像从 canvas 标签保存到 php 服务器?

php - 使用时间发布表单

php - 如何在同一个查询中查询 'group by' 查询的结果

php - 使用 Symfony 在 2 个表之间建立多个连接表