php - 如何在 Laravel 的 TODO 列表应用程序中执行过期变量?
问题描述
我正在 Laravel 中做一个 TODO 列表,在我的仪表板中,我想计算用户有多少过期任务。我可以计算总共有多少任务,有多少任务要做,但我无法计算用户有多少过期任务。我的仪表板中有以下内容:
我在我的管理任务部分有以下内容:
对于第一张图片,我的代码中有以下代码DashboardController.php
:
public function index()
{
$currentTime = date('Y-m-d');
$schedule = Task::where('schedule');
$overdue = $currentTime > $schedule;
$taskCount = Task::where('user_id',Auth::user()->id)->get();
$todoCount = Task::where('status',false)->get()->where('user_id',Auth::user()->id);
$doneCount = Task::where('status',true)->get()->where('user_id',Auth::user()->id);
$overdue = Task::where('user_id',Auth::user()->id)->get();
/////////SENDING TO THE DASHBOARD
$doneTasks = Task::where('user_id','=',Auth::user()->id)->where('status',true)->paginate(3);
$todoTasks = Task::where('user_id','=',Auth::user()->id)->where('status',false)->paginate(3);
return view('user.dashboard',compact('taskCount','todoCount','doneCount','doneTasks','todoTasks'));
}
在我的dashboard.blade.php
我有以下内容(仅总结那部分):
<p class="card-category">To do</p>
<h3 class="card-title">{{$todoCount->count()}}
<p class="card-category">Done tasks</p>
<h3 class="card-title">{{$doneCount->count()}}</h3>
<p class="card-category">Total tasks</p>
<h3 class="card-title">{{$taskCount->count()}}</h3>
这就是我计算任务的方式。但到目前为止,我无法计算我的逾期任务,并发送到我的dashboard.blade.php
. 在我的数据库中,我有一个任务表,并且我有一个名为schedule的字段(带有日期函数)。对于获取待办事项(状态为布尔值),我的状态 = 0表示待办事项,完成状态 = 1表示已完成。
正如您在我的第二张图片中看到的那样,我已完成、逾期和待办任务。但在我逾期任务的那张表中,我必须执行以下操作(在我的index.blade.php
):
@if ($task->status == 1)
<span class="badge badge-success">Done</span>
@elseif($task->status == 0 && $otherTime > $task->schedule)
<span class="badge badge-danger">Overdue</span>
@else
<span class="badge badge-warning">To do</span>
@endif
对于 $otherTime 我做了下一个:
$otherTime = date("Y-m-d");
那么我该如何计算我的逾期任务呢?抱歉,如果太大,但我正在尝试详细说明我所做的事情。
提前致谢
解决方案
您可以通过查询获得计数。在查询中将日期与今天进行比较,您将获得逾期任务
// 用于记录
$overdueTasks = Task::where('user_id','=',Auth::user()->id)
->where('date', '>', date('Y-m-d')) //compare date // or ->where('date', '>=', '2019-11-08 23:59:59') // or ->whereDate('date', '>', '2019-11-08')
->where('status',false)
->paginate(3);
// 用于计数
$overdueTaskCounts = Task::where('user_id','=',Auth::user()->id)
->where('date', '>', date('Y-m-d')) //compare date // or ->where('date', '>=', '2019-11-08 23:59:59') // or ->whereDate('date', '>', '2019-11-08')
->where('status',false)
->count();
推荐阅读
- javascript - 安全问题,需要更改地址栏而不重新加载。似乎无法到达那里
- javascript - AdonisJs:为什么迁移在无符号附近标记语法错误,而其他迁移具有相同的语法并且可以完美运行?
- r - 当第三列的值时,用另一列的值填充新列
- html - 内联 SVG 使父 DIV 高度大于实际 SVG 高度并向上移动
- python - 正确安装 dlib 和 cuda 时,python 面部识别中的 CNN 模型会引发运行时错误
- php - Prestashop:发生错误:您必须先安装 PHP zip 扩展。我安装了 Zip 扩展
- python - scrapy 从 txt 文件读取 url 失败
- json - 如何为 to_jsonb postgres 函数将 postgres SQL 转换为 SQLite?
- sql - SQL 优化:超出 CPU 使用的调用限制
- javascript - 防止基本表单的默认js