我的数据库中有2个表-Bots
和Results
。机器人表仅包含有关每个特定机器人的信息。每个漫游器都应附有多个结果。我将简化我在专栏中的内容:
机器人表
Device | Info1 | Info2 | Info3
结果表
Device | Data1 | Data2 | Data3
如您所见,每个表都有名为Device
的列。现在,我当然为每个表提供2个模型-有关信息如下:
Bot模型
public function results()
{
return $this->hasMany('App\Result', 'device', 'device');
}
结果模型
public function bots()
{
return $this->belongsTo('App\Bot', 'device', 'device');
}
我有一个带有数据表的视图,该视图试图列出每个Device
和对应于该Result
的每个Device
。我这里的例子说明了引入雄辩的关系之前所做的事情。我过去只拥有结果表,因此,进行遍历和遍历我必须在Datatabes上显示的每个结果非常简单。 / p>
数据表视图
@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
既然设备名称和信息实际上存储在单独的表中,如何使它起作用?
答案 0 :(得分:0)
您可以使用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