如何将通过树枝从对象生成的行添加到数据表中?

时间:2019-01-29 10:48:48

标签: symfony object foreach datatables twig

这是我向数据表中添加行的方式:

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        "id":       'test',
        "name":   'test',
        "type":   'test',
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });

我有一个对象columns

array:3 [▼
  "id" => ReflectionProperty {#7030 ▶}
  "name" => ReflectionProperty {#7031 ▶}
  "type" => ReflectionProperty {#7034 ▶}
]

现在,我想用对象中的字段替换硬编码的字段。这是我的方法:

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        {% for key, value in columns %}
        {   "{{ key }}": 'test'},
        {% endfor %}
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });

控制台中的错误是这样的:

  

SyntaxError:预期的属性名称,得到了'{'

1 个答案:

答案 0 :(得分:1)

您必须删除大括号...

  $(document).on('change', '.item-select', function() {
    var optionValue = $(this).val();
    var optionText = $('.item-select option[value="'+optionValue+'"]').text();
    if (optionValue) {
      table.row.add({
        {% for key, value in columns %}
          "{{ key }}": 'test',
        {% endfor %}
      }).draw();
      $('option', this).first().prop('selected', true);
    }
  });