如果foreach为空,Laravel不会显示类别

时间:2015-10-31 15:18:02

标签: php laravel view foreach blade

我有以下控制器和型号:

约会控制员:

<div class="col-sm-2">
    <p class="inner-text">TITLE</p>
</div>

约会模式:

if ($view === 'default') {
    $appointments = Appointment::with('label')->with('status')->paginate(25);
}

if ($view === 'label') {
    $appointments = Label::with('appointments')->paginate(25);
}

标签型号:

public function label()
{
    return $this->belongsTo('App\Label');
}

在我的&#34;默认&#34;查看,显示如下:

enter image description here

在我的&#34;标签&#34;查看,显示如下:

enter image description here

我想要完成的是,当标签没有约会时,我不希望标签显示出来。所以,在我的&#34;标签视图中#34; (看看下面的图片)我只想要&#34;业务&#34;和&#34;个人&#34;要显示的标签(以及图像中显示的约会),不应显示所有其他标签。

在我的观点中,我只使用foreach循环。任何正确方向的指针?

我的观点(简单):

public function appointments()
{
    return $this->hasMany('App\Appointment');
}

2 个答案:

答案 0 :(得分:1)

在编写标签之前,需要检查数组的长度。因此,您需要确保$ appointment-&gt;约会计数大于0。

@if ($view === 'label')
    @foreach ($appointments as $appointment)
        @if (count($appointment->appointments) > 0)
        <table>
            <tr>
                <th><p>{{ $appointment->label }}</p></th>
            </tr>
                @foreach ($appointment->appointments as $label)
                    <tr>
                        <td>{{ $label->appointment }}</td>
                    </tr>
                @endforeach
        </table>
        @endif
    @foreach ($appointments as $appointment)
@endif

答案 1 :(得分:1)

试试这个:

您可以通过检查非空约会来实现此目的。在这里,我们将检查 empty() 方法的否定情况。

查看 (刀片)

@if ($view === 'label') 
    @foreach ($appointments as $appointment) 
       <table> 
          @foreach ($appointment->appointments as $key=> $label)
              @if(!empty($label))
                    @($key == 0)
                         <tr> 
                            <th><p>{{ $appointment->label }}</p> </th> 
                         </tr>
                    @endif 
                    <tr> 
                           <td>{{ $label->appointment }}</td> 
                    </tr> 
              @endif
           @endforeach 
        </table> 
    @endforeach
@endif

希望这有用。