[英]Laravel paginate belongsToMany relationship?
我想对我从我的关系中得到的结果进行分页。 我有一个产品表/控制器、一个用户表/控制器和一个标记产品表。 但是,我没有markedProducts 表,因为我实际上并不需要它。 我使用此解决方案在我的用户 model 中获取一个用户的所有标记产品:
public function markedProducts(){
return $this->belongsToMany('App\Product', 'products_marks');
}
我现在的问题是如何对结果进行分页,我的第二个问题是如何获取标记产品表中每一行的created_at
值?
因为我的解决方案是只退回标记的产品。 但是,我想在用户标记产品时向他展示。
到目前为止,我有这个想法:
$markedProducts = DB::table('products_marks')->where('user_id', Auth::id())->orderBy('created_at', 'desc')->paginate(2);
$products = Product::whereIn('id', $markedProducts->lists('product_id'));
但是, ->lists()
不再是一种方法,实际上我不想绕过 Laravel 方法,也不想循环通过分页来获取包含所有product_id
的数组。
你们有什么好的和高性能的解决方案吗?
亲切的问候,谢谢!
Auth::user()将返回经过身份验证的用户。
并使用关系方法markedProducts()
来获取产品的查询。
然后按orderBy
表的created_at
列排序。
最后,对这个 eloquent 构建器应用分页。
Auth::user()->markedProducts()->orderBy('products_marks.created_at', 'DESC')->paginate($limit);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.