我有一个模型,我急切地加载了对另一个表的两个引用(在本例中为posts.created_by_id == users.id
和posts.updated_by_id == users.id
)。
class Post {
protected $table = 'posts';
public function scopeLatest() {
return $query->with(['created_by', 'updated_by'])
->orderBy('created_at', 'desc');
}
public function createdBy() {
return $this->belongsTo('User');
}
public function updatedBy() {
return $this->belongsTo('User');
}
}
class User {
protected $table = 'users';
public function posts() {
return $this->hasMany('Post', 'created_by');
}
}
这会导致类似以下查询:
SELECT * FROM tbl ORDER BY created_at DESC;
SELECT * FROM users WHERE id IN (?); (created_at)
SELECT * FROM users WHERE id IN (?); (updated_at)
这是有道理的——我们将所有引用的记录加载到 中created_by
,然后updated_by
——但是我们可以优化它以组合 id 对users
.
我的问题是:这是 Eloquent 目前支持的吗?