我在Laravel 4.2工作。我有三个感兴趣的模型,儿童,家庭和地址。家庭与孩子有一对多的关系,并且因为系统跟踪家庭移动性,它与地址有一对多的关系。我尝试通过急切加载为单个Child返回两个不同的地址(技术上两个地址集合,每个地址只包含一个实例),在地址上使用两个不同的范围来获得原始"限定&# 34;学年的地址以及孩子的最终地址。正如您在下面的代码中所看到的,我已经依次在家庭和地址(" qualifyingAddresses"基本上作为"地址"的别名)之间建立两种不同的关系能够同时返回两个范围的查询。它有效,但我想看看是否有人有任何替代品并没有涉及到什么感觉像黑客。我怎么能通过Eloquent做到这一点(我发现使用DB ::甚至比这个特定的解决方法更不优雅)?
$query = Child::orderBy('last_name')->orderBy('first_name');
$query->with(
array(
'family'=>function($query) use($school_year_id) {
$query->select('families.*')->with(
array(
'qualifyingAddresses'=>function($query2) use ($school_year_id){
$query2->whereQualifyingFirst($school_year_id)->select('family_addresses.*');
},
'addresses'=>function($query3) use ($school_year_id){
$query3->whereFinal($school_year_id)->select('family_addresses.*');
}
)
);
}
)
);