【问题标题】:How can I get the data of an object in datatables?如何在数据表中获取对象的数据?
【发布时间】:2019-05-11 04:04:44
【问题描述】:

我从 json 文件中获取数据到我的数据表中。

"columns": [
  {% for key, value in columns %}
    {
    "data": "{{ key }}"},
    {% endfor %}
]

这样我得到以下输出:

id  name            slug      icon  
2   Mitarbeiter     members   [object Object]   
3   Angebote        offers    [object Object]   
4   Produkte        products  [object Object]   
5   Felder          fields    [object Object]

为了接收对象的数据,我将代码更改为:

"columns": [
      {% for key, value in columns %}
      {   "data": "{{ key }}.name",
      "defaultContent": "{{ key }}"},
      {% endfor %}
    ]

这对对象很有效,但现在我的其他字段不再显示值,显示列的标签:

id  name    slug    icon 
id  name    slug    icon    
id  name    slug    anchor  
id  name    slug    adjust  
id  name    slug    cloud

列转储:

array:5 [▼
  "id" => ReflectionProperty {#6092 ▶}
  "name" => ReflectionProperty {#6094 ▶}
  "slug" => ReflectionProperty {#6096 ▶}
  "icon" => ReflectionProperty {#6097 ▶}
]

另一种方法是这样的:

   "columns": [
      {% for key, value in columns %}
      {% if key is iterable %}
      {"data": "{{ key }}"},
      {% else %}
      {"data": "{{ key }}.name"},
      {% endif %}
      {% endfor %}
    ]

但在这里我只得到icons 行的输出...


json文件是这样的:

[{"id":2,"name":"Mitarbeiter","icon":{"id":2,"name":"anchor"},"slug":"members"},{"id":3,"name":"Angebote","icon":{"id":1,"name":"adjust"},"slug":"offers"},{"id":4,"name":"Produkte","icon":{"id":1,"name":"adjust"},"slug":"products"},{"id":5,"name":"Felder","icon":{"id":1,"name":"cloud"},"slug":"fields"}]

【问题讨论】:

  • @DarkBee 不幸的是,这没有成功
  • 然后用新信息更新现有问题...
  • @DarkBee 我决定写新的,否则会很混乱
  • 您如何将您的列提供给twig

标签: symfony oop object datatables twig


【解决方案1】:

终于找到了解决办法:

"columnDefs": [
    {
        "render": function (data, type, row) {
          var type = typeof data;
          if(type == "object"){
            return data.name;
          } else {
            return data;
          }

        },
        "targets": "_all"
      }
    ],
"columns": [
     {% for key, value in columns %}
     {   "data": "{{ key }}"},
     {% endfor %}
   ]

【讨论】:

    【解决方案2】:

    真实使用:of_type('object')

    "columns": [
        {% for key, value in columns %}
            {
                "data": "{% if key is of_type('object') %}{{ key }}.name{% else %}{{ key }}{% endif %}"},
        {% endfor %}
        { "data": "id" }
    ]
    

    【讨论】:

    猜你喜欢
    • 2018-05-28
    • 2019-12-09
    • 2011-12-27
    • 2022-10-01
    • 1970-01-01
    • 2017-06-20
    • 2023-04-09
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多