Laravel 访问另一个迭代器中的 collection 个元素

Laravel access collection elements within another iterator

我有数据库 table LovColumnComments 并且它包含:

----------------------------------------------------
| id | view          | column       | description  |
----------------------------------------------------
| 1  | my_view       | object_id    | Object ID    |
| 2  | my_view       | description  | Description  |
----------------------------------------------------

我有另一个 table DataTable 包含实际数据。

-------------------------------------
| id |  object_id    | description  |
-------------------------------------
| 1  |  OBJ_01       | Object 01    |
| 2  |  OBJ_02       | Object 02    |
-------------------------------------

这两个 table 都作为 collection 传递给 blade 视图。

Blade 我现在的模板是:

<table>
  <thead>
     <tr>
        @foreach ($columns as $column)
          <th>{{$column->description}}</th>
        @endforeach
     </tr>
   </thead>
   <tbody>
      @foreach ($data as $datum)
        <tr>
          <td>{{$datum['object_id']}}</td>
          <td>{{$datum['description']}}</td>
        </tr>
      @endforeach
   </tbody>
</table>

我想知道我是否可以访问 $data collection 而不是使用 $datum['object_id']$datum['description']。这是因为,DataTable 可以是任何数据库 table,因此字段名称可以不同,但​​总是会有两列。

因此,$data collection 将始终有两列,但列名可以不同。我需要一种更动态的方式来从 $columns collection.

中获取列名

类似 <td>{{$columns[0]}}</td><td>{{$columns[1]}}</td>

仅供参考,$columnscolumn 包含实际名称(即 object_iddescription

谢谢

下面是我如何在 blade 视图中执行此操作的示例:

@if(count($data) > 0)
    @php
        $keys = array_keys($data[0]);
    @endphp
    @foreach($data as $d)
        @foreach($keys as $key)
            <!-- This is the dynamic value that works with any array -->
            {{$d[$key]}}
        @endforeach
    @endforeach
@endif

如果您有任何问题,请告诉我,我会很乐意为您提供帮助!

@foreach ($data as $datum)
  <tr>
    @foreach ($columns as $column)
      <td>{{$datum[$column->column]}}</td>
    @endforeach
  </tr>
@endforeach