在Laravel 5.1中使用foreach

时间:2015-12-10 21:11:11

标签: php laravel foreach laravel-5.1

我是Laravel的新人。我在用户表中存储了3种类型的用户:

  1. admin:user_type_id = 1
  2. agent:user_type_id = 2
  3. farmer:user_type_id = 3
  4. user_type_id列位于users表中。

    在我的一个Blade文件中,我只想显示代理的名称。这是我的foreach循环,它导入所有3种类型的用户(它显示了管理员,代理商和农民的名字)。

    @foreach($farmerPoint->user as $agent)
    <tr>
      <td>{{ $agent->name }}</td>
      <td>{{ $agent->phone }}</td>
    </tr>
    @endforeach
    

2 个答案:

答案 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