Search code examples
laraveleloquentlimitoffset

Laravel Eloquent limit and offset


This is mine

    $art = Article::where('id',$article)->firstOrFail();
    $products = $art->products;

I just wanna take a limit 'product' This is wrong way

   $products = $art->products->offset($offset*$limit)->take($limit)->get();

Please give me a hand!

Thanks!


Solution

  • 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
    

    From laravel doc 5.2 https://laravel.com/docs/5.2/queries#ordering-grouping-limit-and-offset

    skip / take

    To limit the number of results returned from the query, or to skip a given number of results in the query (OFFSET), you may use the skip and take methods:

    $users = DB::table('users')->skip(10)->take(5)->get();

    In laravel 5.3 you can write (https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset)

    $products = $art->products->offset(0)->limit(10)->get();