【问题标题】:Foreach Loop Through Array for Datatables With Eloquent RelationsForeach 循环遍历具有雄辩关系的数据表的数组
【发布时间】:2018-08-20 15:22:18
【问题描述】:

我的数据库中有 2 个表 - BotsResults。 bots 表将包含有关每个特定机器人的信息。每个机器人都应该附有几个结果。我将简化我的专栏中的内容:

机器人表格

Device | Info1 | Info2  | Info3

结果表

Device | Data1 | Data2 | Data3

如您所见,每个表都有名为Device 的列。现在,每个表我当然有 2 个模型 - 相关信息如下:

机器人模型

public function results()
{
  return $this->hasMany('App\Result', 'device', 'device');
}

结果模型

public function bots()
{
  return $this->belongsTo('App\Bot', 'device', 'device');
}

我有一个包含数据表的视图,我试图列出每个Device 和每个Result 对应于Device。我这里有一个例子,说明在引入 eloquent 关系之前所做的事情。我以前只有结果表,因此做一个 foreach 并循环遍历我必须在 Datatabes 上显示的每个结果非常简单

数据表视图

@foreach ($results as $result)
<tr>
  <td>
    {{ $result->device }}
  </td>
  <td>
    {{ $result->info1 }} 
  </td>
  <td>
    {{ $result->info2 }}
  </td>
  <td>
    {{ $result->info3 }}
  </td>
  <td>
    {{ $result->data1 }} 
  </td>
  <td>
    {{ $result->data2 }}
  </td>
  <td>
    {{ $result->data3 }}
  </td>
</tr>
@endforeach

既然设备名称和信息实际上存储在单独的表中,我怎样才能让它工作?

【问题讨论】:

  • 你能显示你的路由/控制器方法的代码吗?

标签: php laravel foreach datatables eloquent


【解决方案1】:

您可以像这样使用eager 加载来获取您的设备信息及其关联的results

$bots = Bot::with('results')->get();

现在你可以这样做

@foreach ($bots as $bot)
    <tr>
        <td>
            {{ $bot->device }}
        </td>
        <td>
            {{ $bot->info1 }} 
        </td>
        <td>
            {{ $bot->info2 }}
        </td>
        <td>
            {{ $bot->info3 }}
        </td>
    </tr>
    @foreach ($bot->results as $result)
        <tr>
          <td>
            {{ $result->data1 }} 
          </td>
          <td>
            {{ $result->data2 }}
          </td>
          <td colspan="2">
            {{ $result->data3 }}
          </td>
        </tr>
    @endforeach
@endforeach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-24
    • 2013-12-16
    • 2017-06-26
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    相关资源
    最近更新 更多