带有laravel的数据表如何呈现hasMany关系

时间:2018-06-04 23:02:49

标签: laravel laravel-5 datatables

我的控制器有以下回复

[
  {
     "id": 1,
     "place_id": 1,
     "name": "Test",
     "type": 5,
     "created_at": "2018-06-04 15:29:02",
     "updated_at": "2018-06-04 15:29:02",
     "time": [
         {
            "id": 1,
            "stadium_id": 1,
            "day": "Saturday",
            "from_hour": 7,
            "to_hour": 12,
            "created_at": "2018-06-04 15:29:42",
            "updated_at": "2018-06-04 15:29:42"
         },
         {
            "id": 2,
            "stadium_id": 1,
            "day": "Sunday",
            "from_hour": 7,
            "to_hour": 12,
            "created_at": "2018-06-04 15:54:03",
            "updated_at": "2018-06-04 15:54:03"
         }
    ]
  }
]

我想访问每个时间对象中的day属性

我尝试了下面的代码,但当然它只是加载第一个结果 有没有解决方案

columns: [
         { data: 'name' },
         { data: 'type' },
         { data: 'time.0.day' },
         { data: 'time.0.from_hour' },
         { data: 'time.0.to_hour' },


    ],

1 个答案:

答案 0 :(得分:1)

您可以使用render属性实际访问time数组:

 columns: [{
      data: 'name'
    },
    {
      data: 'type'
    },
    {
      data: 'time',
      render: function(data, type, row) {
        var txt = '';
        data.forEach(function(item) {
          if (txt.length > 0) {
            txt += '</br> '
          }
          txt += item.day;
        });
        return txt;
      }
    },
   ...

这只会为time中的每个对象添加换行符。这是一个Fiddle供你检查。