【发布时间】:2020-03-08 20:06:34
【问题描述】:
我有两个相关的表:Users & Images
class User extends Model
{
public function images()
{
return $this->hasMany('App\Images');
}
}
class Image extends Model{
public function user()
{
return $this->belongsTo('App\User');
}
}
我正在尝试在名为thumbnails 的User 模型上添加第二种方法,这将允许我急切地加载一组特定的用户Images,而无需先加载所有用户图像。逻辑如下:
public function thumbnails () {
return $this->hasMany('App\Images')
->selectRaw('src, user_id')
->where('processed', true)
->limit(3);
}
我一直这样称呼这种关系:
$posts = Post::with(['user','user.thumbnails'])->get();
使用debugbar,我正在检查查询:
"sql": "select src, user_id from \"images\" where \"processed\" = 1 and \"images\".\"user_id\" in (12, 14, 15) limit 3",
这仅返回 user.thumbnails 第一个 Post 模型。我的thumbnails 方法有问题吗?
【问题讨论】:
标签: mysql sql laravel eager-loading laravel-query-builder