我有一个Eloquent 的模型,在这个模型中,我使用范围查询进行连接.这一切都很好,但我试图弄清楚如何在范围查询中仅从联接表中 Select 某些列.
这是我的控制器中的方法.
$accounts = Account::creator()->get();
下面是模型中的范围查询
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id');
}
这是可行的,但它会返回all个来自帐户和用户的列,但我只需要来自帐户的所有列和来自用户的2列.
我试过这个...
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id')->select(array('id','user_name'));
}
但是,这只会从用户返回这两个字段,并忽略帐户中的列.我知道如何使用两种不同的模型来实现这一点,但这意味着我必须创建一个无用的模型.如果我能弄清楚这一部分,这个范围查询功能就很棒了.