Php 检查集合中的值是否为空值
我有以下型号:Php 检查集合中的值是否为空值,php,laravel,laravel-5.7,Php,Laravel,Laravel 5.7,我有以下型号: Tour.php[belongsTo('App\Region')、belongsTo('App\TourCategory')] Region.php[hasMany('App\Tour');] TourCategory.php[hasMany('App\Tour','category_id');] 以及执行以下任务的代码段: 通过slug查找旅游类别 获得具有该特定类别的旅游 从这些旅行中获取所有唯一的地区名称 public function fetchByCategory(
public function fetchByCategory($slug)
{
$category = TourCategory::where('slug','=', $slug)->first();
$tours = $category->tours()->with('region')->get(['region_id']);
$regions = $tours->pluck('region')->unique();
return view('frontend.pages.travel-style')
->withResults($regions)
->withCategory($category);
}
@foreach($results as $region)
<div class="uk-width-1-2@s">
<a href="{{ route('region2package',[$category->slug,$region->slug]) }}">
<div class="uk-height-medium uk-flex uk-flex-center uk-flex-middle uk-background-cover uk-light" data-src="{{ asset($region->thumb) }}" uk-img>
</a>
<h3><a href="{{ route('region2package',[$category->slug,$region->slug]) }}">{{ $region->name }}</a></h3>
</div>
</div>
@endforeach
如果有人能建议最好的方法来检查集合中的项目是否包含空值,我将不胜感激。您可以筛选集合,从而自动从集合中删除空值,而不是从集合中查找空值
$regions = $tours->pluck('region')->unique()->filter();
我建议您在
tours
关系上使用has
方法,仅在区域存在的地方获得结果,如下所示:
$tours = $category->tours()->has('region')->with('region')->get(['region_id']);
$tours = $category->tours()->has('region')->with('region')->get(['region_id']);