您是否可以限制使用的Eloquent ORM查询take()
,skip()
以便生成的mysql查询也受限制,并且它不必返回整个数据集?
如果是这样,你会如何修改:
$test = User::find(1)->games->toArray();
Run Code Online (Sandbox Code Playgroud)
包括limit 3 offset 2
?
users games userGames
-- id -- id -- user_id
-- name -- name -- game_id
-- steam_id
Run Code Online (Sandbox Code Playgroud)
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');
}
}
Run Code Online (Sandbox Code Playgroud)
使用常规Laravel 查询生成器,我可以得到所有games
属于user
ID 1,并限制其结果与take()
和 …
我想知道是否可以检索与Eloquent关系的第一个元素.
这不起作用:
$posts = Post::with(['medias' => function($q) {
$q->where('type', 'landscape')
// not working
->limit(1);
// not working
->take(1);
// not working
->first();
}])->get();
Run Code Online (Sandbox Code Playgroud)
这是一对多的关系.
先感谢您 !