San*_*rần 44 limit offset laravel eloquent
这是我的
$art = Article::where('id',$article)->firstOrFail();
$products = $art->products;
Run Code Online (Sandbox Code Playgroud)
我只是想限制'产品'这是错误的方式
$products = $art->products->offset($offset*$limit)->take($limit)->get();
Run Code Online (Sandbox Code Playgroud)
请帮我一把!
谢谢!
Ati*_*qur 72
skip = OFFSET
$products = $art->products->skip(0)->take(10)->get(); //get first 10 rows
$products = $art->products->skip(10)->take(10)->get(); //get next 10 rows
Run Code Online (Sandbox Code Playgroud)
来自laravel doc 5.2 https://laravel.com/docs/5.2/queries#ordering-grouping-limit-and-offset
跳过/拿走
要限制查询返回的结果数,或跳过查询中的给定数量的结果(OFFSET),您可以使用skip和take方法:
$users = DB::table('users')->skip(10)->take(5)->get();
在laravel 5.3中你可以写(https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset)
$products = $art->products->offset(0)->limit(10)->get();
Run Code Online (Sandbox Code Playgroud)
小智 6
laravel有自己的功能skip的offset和take为limit。就像下面的laravel查询示例:-
Article::where([['user_id','=',auth()->user()->id]])
->where([['title','LIKE',"%".$text_val."%"]])
->orderBy('id','DESC')
->skip(0)
->take(2)
->get();
Run Code Online (Sandbox Code Playgroud)
Laravel有一个快速的分页方法,分页,只需要传入每页显示的数据数即可。
//use the paginate
Book::orderBy('updated_at', 'desc')->paginate(8);
Run Code Online (Sandbox Code Playgroud)
您可以使用这些方法:offset?limit,skip?take
offset?limit:偏移量设置从何处开始,限制了要查询的数据量
skip?take:skip跳过一些数据并接收大量数据
例如:
Model::offset(0)->limit(10)->get();
Model::skip(3)->take(3)->get()?
//i use it in my project, work fine ~
class BookController extends Controller
{
public function getList(Request $request) {
$page = $request->has('page') ? $request->get('page') : 1;
$limit = $request->has('limit') ? $request->get('limit') : 10;
$books = Book::where('status', 0)->limit($limit)->offset(($page - 1) * $limit)->get()->toArray();
return $this->getResponse($books, count($books));
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用skip和take功能,如下所示:
$products = $art->products->skip($offset*$limit)->take($limit)->get();
Run Code Online (Sandbox Code Playgroud)
// skip应该将参数传递为整数值以跳过记录和起始索引
// take获取一个整数值以获取否。开始索引后定义的记录数skip
编辑
抱歉。我被你的问题误解了。如果您想要类似分页的forPage方法,该方法将为您服务。forPage方法适用于集合。
REF:https://laravel.com/docs/5.1/collections#method-forpage
例如
$products = $art->products->forPage($page,$limit);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117210 次 |
| 最近记录: |