我有a
模型Member
模型
Ledger
我必须获取成员的分类帐记录(需要成员和分类帐数据),其中ledger.created_at =特定日期,例如class Member extends Model
{
public function ledger()
{
return $this->hasMany('App\Ledger','user_id');
}
}
如果我运行以下脚本
ledger.created_at = 2017-03-26 14:15:26
我只获得会员数据,没有分类帐记录。
如果我运行以下脚本
$members = Member::whereHas('ledger', function($q){
$q->where('created_at', '2017-03-26 14:15:26');
})->get();
我使用所需的分类帐记录获得的成员很好,但它也返回其他成员,其中分类帐记录= null,我不需要没有分类帐记录的成员。 (即我只需要ledger.created =' 2017-03-26 14:15:26以及分类帐记录的成员)
我怎样才能做到这一点?
我正在使用Laravel 5.3
答案 0 :(得分:4)
同时使用whereHas()
来过滤成员,with()
加载ledger
数据:
$members = Member::whereHas('ledger', function($q) {
$q->where('created_at', '2017-03-26 14:15:26');
})
->with(['ledger' => function($q) {
$q->where('created_at', '2017-03-26 14:15:26');
}])
->where('type', 5)
->paginate(10);