在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()是一个回显分页页面的函数......但是无法得到错误......任何人都可以帮忙。
答案 0 :(得分:0)
不,render()
不能在对象本身上工作,也不会在您创建的数组上用于分页工作所需的对象(LengthAwarePaginator)
由于您有一个集合,并且需要一个集合,因此可以使用提供的方法之一进行过滤,例如filter。
像(未经测试但应该工作)的东西:
$staff = $users->filter(function ($value, $key) {
return !$value->isUser();
});
答案 1 :(得分:0)
通过应用foreach寻呼机对象并分配一个数组会丢失分页属性,因此您将拥有一个数组而不是一个寻呼机对象。 我推荐以下解决方案:
控制器:
public function getAdmins(){
$search[] =array();
$search['name']= Input::get('name','');
$search['uname']= Input::get('uname','');
$search['role']= Input::get('role','');
$users = $this->user->findUsers($search);
return view('users::admins.list')->with('users',$users)->with('search',$search);
}
刀片文件:
@if($users)
@foreach($users as $user)
@if(!$user->isUser())
<!-- Some code here to loop array -->
@endif
@endforeach
@else
No Staffs
@endif
{!! $users->render() !!}