我通过以下方式在控制器中显示我的视图:
$data = Lib::index();
$view = View::make('index')
->with('data', $data)
->render();
return $view;
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式检查控制器中的数据是否为空:
$data->isEmpty();
Run Code Online (Sandbox Code Playgroud)
但是当我在视图中尝试相同的操作时,我收到错误:
Call to a member function isEmpty() on a non-object
Run Code Online (Sandbox Code Playgroud)
为什么?
这是 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;
Run Code Online (Sandbox Code Playgroud)
isEmpty()
是一个集合方法。由于一些奇怪的原因,在视图中,它有时将空集合称为null
。在我看来,最安全的检查是进行计数检查,如下所示:
if (count($data)) {...}
Run Code Online (Sandbox Code Playgroud)
这在控制器和视图中都很有效。
Dev*_*Dev -1
尝试
> var_dump($data);
Run Code Online (Sandbox Code Playgroud)
视图中。
看看它显示了什么。这可能有助于进一步调查该错误。
然后按照
> foreach($data as $moredata){
> $moredata->isEmpty(); }
Run Code Online (Sandbox Code Playgroud)
应该管用。
归档时间: |
|
查看次数: |
27209 次 |
最近记录: |