【发布时间】:2019-06-18 05:07:14
【问题描述】:
我有以下型号:
- Tour.php [belongsTo('App\Region'),belongsTo('App\TourCategory')]
- Region.php [hasMany('App\Tour');]
-
TourCategory.php [hasMany('App\Tour', 'category_id');]
以及执行以下任务的代码 sn-p:
通过它的蛞蝓找到旅游类别。
- 获取具有该特定类别的游览。
-
从这些旅行中获取所有独特的地区名称。
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
- 当我在上述方法中转储并死
dd($tours->count());时当数据库中只有一个旅游保存时没有区域它返回1 -
当我做
dd($regions);时,它给出了这个:Collection {#570 ▼ #items: array:1 [▼ 0 => null ] }
如果有人能提出最好的方法来检查集合中的项目是否包含空值,我将非常感激?
【问题讨论】:
标签: php laravel laravel-5.7