laravel 4 - jak ograniczać (Take and Skip) dla Eloquent ORM?

TL; DR

Czy możesz ograniczyć kwerendę Eloquent ORM, taką jak używanietake() iskip() tak, że wynikowe zapytanie mysql jest również ograniczone i nie musi zwracać całego zestawu danych?

Jeśli tak, jak byś zmodyfikował:

$test = User::find(1)->games->toArray();

Zawrzećlimit 3 offset 2?

Tabele:
users       games           userGames
-- id       -- id           -- user_id
-- name     -- name         -- game_id
            -- steam_id
Modele:
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 w Konstruktorze zapytań

Używanie zwykłego LaravelaKreator zapytań Mogę dostać wszystkogames które należą douser o id 1 i ogranicz wynik dotake() iskip():

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

Słuchającilluminate.query Zdarzenie Widzę, że zapytanie wygenerowane przez to jest:

select * from `games`
inner join `userGames`
on `userGames`.`game_id` = `games`.`id`
where `userGames`.`user_id` = ?
limit 3 offset 2
Limit w elokwentnym ORM

Kiedy próbuję odtworzyć to samo zapytanie za pomocą Eloquent:

$test = User::find(1)->games->take(2)->toArray();

Jestem w stanie użyćtake ale dodającskip powoduje błąd. Wynikowe zapytanie również nie zawiera limitu:

select `games`.*, `userGames`.`user_id` as `pivot_user_id`,
`userGames`.`game_id` as `pivot_game_id` from `games`
inner join `userGames`
on `games`.`id` = `userGames`.`game_id`
where `userGames`.`user_id` = ?

Wygląda więc na to, że cały wynik jest najpierw badany, co nie jest idealne w przypadku dużych zbiorów danych.

Pytanie:

Czy jest możliwe ograniczenie kwerendy Eloquent ORM, aby na poziomie kwerendy MYSQL ograniczało to wynik, równoważnylimit 3 offset 2?

questionAnswers(1)

yourAnswerToTheQuestion