我将数据发送到Laravel视图,并且其中一个对象不可能存在,因为它不会从数据库中获得任何结果。
问题是我收到错误Trying to get property of non-object
并且我不知道如何直接在视图中检查对象是否存在。
这里有一些要理解的代码:
$segment = $request->segment(2);
$apk = Apk::where('slug', '=', $segment)->first();
$cat = Category::where('id', $apk->category_id)->first();
$parentcat = Category::where('id', $cat->parent)->first();
$related = Apk::where('category_id', $cat->id)
->where('id', '!=', $apk->id)
->orderBy('id', 'desc')
->get();
return view('single')->with('apk', $apk)->with('related', $related)->with('cat', $cat)->with('parentcat', $parentcat);
观点:
@foreach ($related as $rel)
<div class="item">
<a href="{{ url('/apk/'.$rel->slug)}}">{{ $rel->name.' '.$rel->version }}</a>
</div>
@endforeach
$related
可能为空,这似乎会导致问题。
有什么建议吗?
答案 0 :(得分:2)
我认为控制器中的$相关值是空的。
试试这个
$related = Apk::where('category_id', $cat->id)
->orWhere('id', '!=', $apk->id)
->orderBy('id', 'desc')
->get();
return $related;
首先尝试这样,如果$ related value返回任何可以推送此对象的东西。
所以首先检查来自数据库的数据。
答案 1 :(得分:0)
使用
@if($related)
//foreach.....
@endif
答案 2 :(得分:0)
检查一下:
if ( !empty ( $variable ) ) {
...
}