Laravel 5 报告和拾取数据的默认查询
我正在尝试设置一个默认查询,以便在Laravel5.1中生成报告。在设置这个默认查询之后,我将 尝试将一些条件与WARE放在一起,并在变量中得到这些结果 例如:Laravel 5 报告和拾取数据的默认查询,laravel-5,eloquent,laravel-query-builder,Laravel 5,Eloquent,Laravel Query Builder,我正在尝试设置一个默认查询,以便在Laravel5.1中生成报告。在设置这个默认查询之后,我将 尝试将一些条件与WARE放在一起,并在变量中得到这些结果 例如: $tasks = Task::whereBetween('created_at', [$date1, $date2]); $closed = $tasks->where('closed', 1)->count(); $re_open = $tasks->where('reopen', 1)->count();
$tasks = Task::whereBetween('created_at', [$date1, $date2]);
$closed = $tasks->where('closed', 1)->count();
$re_open = $tasks->where('reopen', 1)->count();
问题是:
当我返回$closed时,数字是正确的,但是当我返回$re_open时,计数是0,因为查询将第二个重新打开的条件与第一个关闭的条件相加
像这样:
select * from `tasks` where `created_at` between ? and ? and `closed` = ? and `reopen` = ?
对于所有报表,$tasks中的查询始终相同。如何使用默认查询获得第二个条件,而不在所有代码中复制查询
谢谢 我不知道这是否是最好的答案,但我解决了这个问题: 我设置了默认查询:
$query = Task::whereBetween('created_at', [$date1, $date2]);
并将其用于每个过滤器:
$tasks = clone $query;
$closed = $tasks->where('closed', 1)->get();
$tasks = clone $query;
$reopen = $tasks->where('reopen', 1)->get();
好的,我有两行用于一个查询,但是如果我的默认查询有更多的过滤器,那么这种方式会更干净
谢谢我不知道这是否是最好的答案,但我解决了这个问题: 我设置了默认查询:
$query = Task::whereBetween('created_at', [$date1, $date2]);
并将其用于每个过滤器:
$tasks = clone $query;
$closed = $tasks->where('closed', 1)->get();
$tasks = clone $query;
$reopen = $tasks->where('reopen', 1)->get();
好的,我有两行用于一个查询,但是如果我的默认查询有更多的过滤器,那么这种方式会更干净
谢谢是否只有已关闭和重新打开的任务记录?如果是,为什么不从$task->count()-$closedNo重新打开。这只是一个例子,在报告中我有几个列,我打算设置几个条件。是否只有关闭和重新打开的任务记录?如果是,为什么不从$task->count()-$closedNo重新打开。这只是一个例子,在报告中我有几个专栏,我打算提出几个条件。