mysql - laravel 4 - how to Limit (Take and Skip) for Eloquent ORM? -


tl;dr

can limit eloquent orm query using take() , skip() resulting mysql query limited, , doesn't have return entire dataset?

if so, how modify:

$test = user::find(1)->games->toarray(); 

to include limit 3 offset 2?


tables:

users       games           usergames -- id       -- id           -- user_id -- name     -- name         -- game_id             -- steam_id 

models:

class user extends eloquent {     public function games() {         return $this->belongstomany('game', 'usergames', 'user_id', 'game_id');     } }  class game extends eloquent {     public function users() {         return $this->belongstomany('user', 'usergames', 'user_id', 'game_id');     } } 

limit in query builder

using regular laravel query builder can games belong user of id 1, , limit result take() , skip():

$test = db::table('games')     ->join('usergames', 'usergames.game_id', '=', 'games.id')     ->where('usergames.user_id', '=', '1')->take(3)->skip(2)->get(); 

by listening illuminate.query event can see query generated is:

select * `games` inner join `usergames` on `usergames`.`game_id` = `games`.`id` `usergames`.`user_id` = ? limit 3 offset 2 

limit in eloquent orm

when try recreate same query eloquent:

$test = user::find(1)->games->take(2)->toarray(); 

i'm able use take adding skip causes error. resulting query not contain limit:

select `games`.*, `usergames`.`user_id` `pivot_user_id`, `usergames`.`game_id` `pivot_game_id` `games` inner join `usergames` on `games`.`id` = `usergames`.`game_id` `usergames`.`user_id` = ? 

so seems entire result being queried first, not ideal when dealing large data sets.


question:

is possible limit eloquent orm query @ mysql query level limits result, equivalent limit 3 offset 2?

user::find(1)->games()->take(3)->skip(2)->get(); 

i think should give collection. :)

->games give collection, ->games() offer query builder instance.

enjoy laravel!


Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -