我是Laravel的新人。我在用户表中存储了3种类型的用户:
user_type_id列位于users表中。
在我的一个Blade文件中,我只想显示代理的名称。这是我的foreach
循环,它导入所有3种类型的用户(它显示了管理员,代理商和农民的名字)。
@foreach($farmerPoint->user as $agent)
<tr>
<td>{{ $agent->name }}</td>
<td>{{ $agent->phone }}</td>
</tr>
@endforeach
答案 0 :(得分:1)
您可以使用简单的刀片@if()
语句,如下所示:
@foreach($farmerPoint->user as $agent)
@if ($agent->user_type_id === 2)
<tr>
<td>{{ $agent->name }}</td>
<td>{{ $agent->phone }}</td>
</tr>
@endif
@endforeach
或者你可以使用集合where()
,因为所有热切/延迟加载的关系都在集合中返回:
http://laravel.com/docs/5.1/collections#method-where
@foreach($farmerPoint->user->where('user_type_id', 2) as $agent)
<tr>
<td>{{ $agent->name }}</td>
<td>{{ $agent->phone }}</td>
</tr>
@endforeach
答案 1 :(得分:1)
这可能是一个逻辑问题,而不是Laravel问题。请注意,我建议你使用你的查询(在哪里)而不是这种方式来限制$ agent,但是:
@foreach($farmerPoint->user as $agent)
@if ($agent->user_type_id === 2)
<tr>
<td>{{ $agent->name }}</td>
<td>{{ $agent->phone }}</td>
</tr>
@endif
@endforeach