Laravel引用母亲查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel引用母亲查询相关的知识,希望对你有一定的参考价值。
我有这个雄辩的问题:
$result = Model::whereBetween('created_at', [$date_from, $date_to]);
$active_records = $result->where('status_id', 1)->get();
$pending_records = $result->where('status_id', 2)->get();
$closed_records = $result->where('status_id', 3)->get();
我的问题是$active_records
上的查询影响了对$closed_records
和$pending_records
的查询。
如何使最后两个查询引用原始的$result
查询?
答案
我建议你不要做4分贝查询,你可以做一个查询,之后,你可以使用Laravel Collection
过滤你的列表,所以你的代码将是这样的,并确认$active_records
不会影响$closed_records
:
$result = Model::whereBetween('created_at', [$date_from, $date_to])->get();
$active_records = $result->where('status_id', 1);
$pending_records = $result->where('status_id', 2);
$closed_records = $result->where('status_id', 3);
另一答案
你可以这样做
$result = Model::whereIn('status_id', [1, 2, 3])
->whereBetween('created_at', [$date_from, $date_to])
->get();
$active_records = $result->where('status_id', 1);
$pending_records = $result->where('status_id', 2);
$closed_records = $result->where('status_id', 3);
以上是关于Laravel引用母亲查询的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 模型自引用belongsToMany与其他关系和具有多个限制的查询