首页 > 解决方案 > 如何在 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");

那么我该如何计算我的逾期任务呢?抱歉,如果太大,但我正在尝试详细说明我所做的事情。

提前致谢

标签: phplaravel

解决方案


您可以通过查询获得计数。在查询中将日期与今天进行比较,您将获得逾期任务

// 用于记录

$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();

推荐阅读