【发布时间】:2015-06-10 02:02:08
【问题描述】:
我正在尝试按链接表计数对查询进行排序,但无法弄清楚如何使用 Laravel 分页;下面是我传递给视图的查询
我认为 Laravel 5 的分页器方法已被移动?
$companies = Company::with('locations')->get()->sortBy(function($count)
{
return $count->locations->where('status', '=', 'Active')->count();
}, null, true);
由于调用了 get 和 sortby 函数,我无法应用分页(以下错误)
调用未定义的方法 Illuminate\Database\Eloquent\Collection::pagination()
也许有另一种方法可以通过 hasMany 关系的计数进行排序 - 在本例中为“位置”。 (附带问题;我不知道如何使用 hasManyThrough 关系进行上述工作)。
模型关系如下图
public function locations()
{
return $this->hasMany('App\Location');
}
public function equipment()
{
return $this->hasManyThrough('App\Equipment', 'App\Location');
}
使用类似下面的东西给出了一个未定义的“make”方法?
return Paginator::make($companies->all(), $companies->getTotal(), $companies->getPerPage())
【问题讨论】:
-
这是 laravel 5;我认为分页自 4 以来发生了重大变化?
-
我认为基本的困境是一样的。一旦你有了一个集合,数据库查询就完成了,所以此时你能做的最好的就是分块完整的结果。因此,您需要(显然)在 db 查询对象上的相关且显然未预定义的点上的自定义分页对象(关系过滤器,我想?)但平心而论,我从未接触过 laravel,我只是想它的花花公子,喜欢阅读有关它的问题。
标签: php pagination laravel-5