我通过以下方式在控制器中查看我的视图:
$data = Lib::index();
$view = View::make('index')
->with('data', $data)
->render();
return $view;
我可以通过以下方式检查控制器中的数据是否为空:
$data->isEmpty();
但是当我在视图中尝试同样的事情时,我得到了错误:
Call to a member function isEmpty() on a non-object
为什么?
这里是Lib :: index()的代码:
$page = isset($_GET['page']) ? ($_GET['page']) : 1;
Paginator::setCurrentPage($page);
try {
$data = Asset::with(array('sizes'=> function($query){
$query->select('width', 'height', 'asset_id');
}))->where('active', 1)->orderBy('updated_at', 'DESC')->paginate(Config::get('p.results_per_page'), array('id', 'alt'));
}
catch (QueryException $e) {
App::abort(404);
}
return $data;
答案 0 :(得分:1)
isEmpty()
是一个Collection方法。出于某些奇怪的原因,在视图中,有时会将空Collection称为null
。我认为最安全的检查是计数检查,如下所示:
if (count($data)) {...}
这在Controllers和Views中都很好。
答案 1 :(得分:0)
考虑您正在收集一些信息;
$UserInfo = User::where('phone', $phone_number)->first();
使用此代码进行错误检查
if(empty($UserInfo)){
return redirect()->back()->withErrors('we don't have a user with this phone number ');
}
并将以下代码添加到刀片中
@if(count($errors)>0)
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
</div>
@endif
最诚挚的问候
答案 2 :(得分:-1)
尝试
> var_dump($data);
在视图中。
看看它出现了什么。这可能有助于进一步调查错误。
然后按照
继续> foreach($data as $moredata){
> $moredata->isEmpty(); }
应该工作。