我想在我看来用相应的公司对所有部门进行分页。因此,我创建了相应的模型并仅选择所需的字段,我创建了一个集合。在我的控制器中,我创建了这个集合的一个实例,并希望将它传递给我的视图。这是我的控制器:
$deps = new App\Http\Resources\DepartmentCollection(
App\Department::where('active',1)->whereHas('company',function($query){
$query->where('active',1);
})->with('company')->paginate(10));
这是我的收藏:
public function toArray($request)
{
$arr = array();
foreach($this as $t)
{
$a = array();
$a['id'] = $t->id;
$a['title'] = $t->title;
$a['company_title'] = $t->company['title'];
$a['company_id'] = $t->company['id'];
$arr[] = $a;
}
return $arr;
}
当我在控制器中返回 $deps 时,我可以看到原始数据,它看起来很好。
data: {
0 : {
id : 1
title : "Prod.asdfasdf"
company_title : "asdf"
company_id : 1
但是每当我将 $deps 传递给我的视图时,我总是会得到完整的模型,就好像从来没有任何集合一样。
return $deps;
return view('abteilungen',['departments'=>$deps]);
我究竟做错了什么?
编辑: 我尝试使用
return view('abteilungen',['departments'=>$deps->toArray($request)]);
但这删除了 Laravel 提供的分页信息,以及访问
$departments->links()
在我看来是行不通的。