【发布时间】:2018-07-29 12:50:25
【问题描述】:
我想将所有部门与我认为的相应公司进行分页。因此,我创建了相应的模型并仅选择所需的字段,我创建了一个集合。在我的控制器中,我创建了这个集合的一个实例,并希望将它传递给我的视图。 这是我的控制器:
$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()
在我看来是行不通的。
【问题讨论】:
-
也许可以试试
['departments' => $deps->toArray()] -
我编辑了这个问题,按照帖子中的说明进行了尝试
-
您必须了解一件事,您无权访问
links或Collection对象上的任何其他功能,因为您返回的是一个数组,因此是toArray,所以你想返回Collection或Arrayof 对象吗? -
我想返回一个集合,因为我需要分页信息和链接
标签: laravel model eloquent laravel-collection laravel-views