我有一个Eloquent模型,在该模型中,我使用一个作用域查询来执行联接。这一切都很好,但是我正试图弄清楚如何在作用域查询中仅从连接的表中选择某些列。
这是我控制器中的方法:
$accounts = Account::creator()->get();
这是模型中的范围查询
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id');
}
这个方法可以用,但是它会返回accounts和users表中所有列的数据,而我只想要accounts表中的所有列和users表中的2个列。我尝试了这个...
public function scopeCreator($query) {
$query->leftJoin('users','users.id','=','accounts.creator_id')->select(array('id','user_name'));
}
但是,这只返回用户中的那2个字段,并忽略了账户中的列。我知道如何使用2个不同的模型解决此问题,但这意味着我必须创建一个无用的模型。如果我可以弄清楚这一部分,这个查询功能将非常好用。