我有以下控制器和型号:
约会控制员:
<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;查看,显示如下:
在我的&#34;标签&#34;查看,显示如下:
我想要完成的是,当标签没有约会时,我不希望标签显示出来。所以,在我的&#34;标签视图中#34; (看看下面的图片)我只想要&#34;业务&#34;和&#34;个人&#34;要显示的标签(以及图像中显示的约会),不应显示所有其他标签。
在我的观点中,我只使用foreach循环。任何正确方向的指针?
我的观点(简单):
public function appointments()
{
return $this->hasMany('App\Appointment');
}
答案 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
希望这有用。