【发布时间】:2016-02-13 13:53:37
【问题描述】:
在 laravel 控制器中,我有以下代码:
public function getAdmins(){
//$users = $this->user->all();
$search[] =array();
$search['name']= Input::get('name','');
$search['uname']= Input::get('uname','');
$search['role']= Input::get('role','');
$users = $this->user->findUsers($search);
$exceptSuperadmin = array();
foreach($users as $user){
if(!$user->isUser())
$staffs[] = $user;
}
$users = @$staffs;
return view('users::admins.list')->with('staffs',$users)->with('search',$search);
}
在模型中我有:
public function findUsers($search)
{
return self::where('name','like','%'.$search['name'].'%')
->where('username','like','%'.$search['uname'].'%')
->where('role','like','%'.$search['role'].'%')
->paginate(5);
}
在刀片文件中我有:
@if($staffs)
@foreach($staffs as $staff)
<!-- Some code here to loop array -->
@endforeach
@else
No Staffs
@endif
{!! $staffs->render() !!} Error comes at this line
我不明白为什么会出现此错误....staffs 是一个数组,而 render() 是一个回显分页页面的函数...但无法收到错误...任何人都可以帮忙。
【问题讨论】:
-
渲染函数在数组上不可用。它仅在集合中可用。对结果进行分页后,您将它们添加到数组中。这就是您收到该错误的原因。
-
不,render() 适用于 PaginationAware 对象,而不适用于您使用它创建的数组
-
那么解决方案是什么...在正常情况下,我们按照我上面所做的那样进行分页... laravel 文档也像我上面所做的那样说明了这种方式..但是错误来了
-
@Damien Pirsy....然后你的意思是说我必须创建一个对象..而不是一个数组?
-
你们的意思是说 render() 函数适用于对象,而不是数组......我说的对吗?
标签: php laravel pagination