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特殊功能代码片段集合

Laravel - 模型自引用belongsToMany与其他关系和具有多个限制的查询

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

Laravel:如何在控制器的几种方法中重用代码片段

mongodb关联查询

Laravel 护照 - 允许用户作为/登录为其他用户