在这种情况下我是新手,我不会获得“ otmain_many_otline ”的值,但是我不知道如何获得它,我想我应该在将其放入数组原因中用这个 $ list-> otmain_many_otline [0]->目的我只得到第一个数据。我的问题是我不知道如何呈现所有数据的语法?
查看
<table id="example1" class="table table-bordered table-hover">
<thead>
<th>Purpose</th>
</thead>
<tbody>
@foreach($ot_list as $list)
<tr>
<td>
{{$list->otmain_many_otline[0]->purpose}}
</td>
</tr>
@endforeach
</tbody>
</table>
模型
class OTMain extends Model
{
protected $table = 'ot_main';
public function otmain_many_otline(){
return $this->hasMany('App\OTline', 'ot_main_id','id');
}
}
class OTLine extends Model
{
protected $table = 'ot_line';
public function otline_belong_otmain(){
return $this->hasOne('App\OTMain', 'ot_main_id');
}
}
控制器
$ot_list = OTMain::whereIn('created_by', $requestor_list)
->with('otmain_many_otline')
->where('ot_status', 1)
->get();
dd($ot_list);
输出:
答案 0 :(得分:1)
您的otmain_many_otline
关系为hasMany
,这意味着它将返回您相关对象的集合。确保阅读official documentation on them。
如果需要获取第一个相关对象,请使用方法first()
。就您而言:
@foreach($ot_list as $list)
<tr>
<td>
{{ $list->otmain_many_otline->first()->purpose }}
</td>
</tr>
@endforeach
如果需要渲染所有相关对象,也可以只使用另一个omain_many_otline
遍历@foreach
:
...
<td>
@foreach ($list->otmain_many_otline as $otline)
<p>{{ $otline->purpose }}</p>
@endforeach
</td>
...
答案 1 :(得分:1)
您可以简单地执行以下操作:
@foreach($ot_list as $list)
<tr>
<td>
@foreach($list->otmain_many_otline as $ot) // foreach for $otmain_many_otline
{{$ot->purpose}} ,
@endforeach
</td>
</tr>
@endforeach