我有Member模型Ledger模型
class Member extends Model
{
public function ledger()
{
return $this->hasMany('App\Ledger','user_id');
}
}我必须获得成员的分类账记录(需要成员和分类账数据),其中ledger.created_at =特定日期,例如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();我只得到会员的资料,没有分类账记录。
如果我运行以下脚本
$members = Member::with(['ledger' => function($q) {
$q->where('created_at', '2017-03-26 14:15:26');
}])->where('type','=','5')->paginate(10);我得到成员与所需的分类账记录是好的,但它也返回其他成员,其中分类账记录= null,我不需要的成员谁没有分类账记录。(我只需要ledger.created = '2017-03-26 14:15:26的会员和分类账记录)
我怎样才能做到这一点?
我用的是Laravel 5.3
发布于 2017-03-26 10:04:16
使用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);https://stackoverflow.com/questions/43027350
复制相似问题