【发布时间】:2015-05-08 15:07:10
【问题描述】:
我有一个 Eloquent 模型,在模型中我使用范围查询进行连接。这一切都很好,但我试图弄清楚如何在范围查询中从连接表中只选择某些列。
这是我控制器中的方法。
$accounts = Account::creator()->get();
这是模型中的范围查询
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id');
}
这可行,但它会返回 所有 来自帐户和用户的列,但我只想要来自帐户的所有列和来自用户的 2 个列。
我试过了……
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id')->select(array('id','user_name'));
}
但是,这仅返回来自用户的这 2 个字段,并忽略来自帐户的列。我知道如何使用 2 个不同的模型来做到这一点,但这意味着我必须创建一个无用的模型。如果我能弄清楚这部分,这个范围查询功能就很棒。
【问题讨论】: