为了账号安全,请及时绑定邮箱和手机立即绑定

你如何取回总和(“金额”)的分页雄辩查询在拉拉维尔5?

你如何取回总和(“金额”)的分页雄辩查询在拉拉维尔5?

PHP
慕田峪9158850 2022-09-24 17:21:46
我有一个飞行员模型和我的控制器返回Logbook$this->log_book->orderBy('flight_date','asc')->paginate(18);我想在每页中汇总总飞行时间。第一页的总飞行时间从DB计算,但对于第二页和下一页,也应该是第一页和下一页的总时间。$previous_total_page_time我不知道如何临时保存变量并在第二页和下一页中使用它$page_previous_total_time飞行时间保存为 A Int(整数分钟数)请求是获取在此图像中,您可以看到我的观点
查看完整描述

2 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您可以计算每个请求的总飞行时间。这未经测试,但假设它应该有效。


$logBook = $this->log_book->orderBy('flight_date','asc');


$logBookPagination = $logBook->paginate(18);


// change the offset value to a value that makes sense for you

$logBookFlightTime = $logBook->offset(0)->limit($logBookPagination->perPage() * $logBookPagination->currentPage())->sum('id'); // replace with your column


return [

   'logBook' => $logBookPagination,

   'totalFlightTime' => $logBookFlightTime

];

为了解释我正在做什么,我从0中获取模型切片 - 当前页面,然后添加所有这些模型的飞行时间。


查看完整回答
反对 回复 2022-09-24
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我解决了这个问题。



$currentPage = $logs->currentPage();

 if ($currentPage == 1) {

  $totalPrevPages = $flight_total_time;

  $flightInsTimePrevPages = $flight_ins_time;

  $total_time=$totalPrevPages + $totalCurrentPage;

}

else {

     $total_time = $this->log_book->log()->orderBy('leg_date','asc')->limit($count * $currentPage)->sum('total_time') + $flight_total_time;

    $totalPrevPages = $total_time - $totalCurrentPage ;

}


查看完整回答
反对 回复 2022-09-24
  • 2 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信