2017-06-05 15 views
0

グループのさまざまなメンバーによって行われたタスクを追跡しようとしています。各ユーザーは完了したタスクを挿入できます。 1日に1つのエントリのみが許可されます。データベースには2つの問題があります。タスクcreated_atです。私のディスプレイテーブルには、DateとContributionという2つの行があります。サーバー時間に基づいてSQLクエリをトリガーする

毎日23:59:59にサーバー時間を要します。その日にタスクが挿入されていない場合は、「今日はタスクが完了していません」と表示する必要があります。そうでなければ、データベースから取得したタスク。

これは私がこれまでにやっていることです。もちろん

<div class="row"> 
    @foreach($users as $user) 
     <div class="col-md-4"> 
      <h1>{{$user->name}}</h1> 
      <table class="table table-hover"> 
      <thead> 
      <tr> 
       <th>Date</th> 
       <th>Contribution</th> 
      </tr> 
      </thead> 
      <tbody> 
       @foreach($entries as $entry) 
        @if($entry->user->id == $user->id)        
         <tr> 
          <td>{{$entry->created_at->format('l j F Y')}}</td> 
          <td>{{$entry->contribution}}</td> 
         </tr>        
        @endif 
       @endforeach       
      </tbody> 
      </table> 
     </div> 
    @endforeach 
</div> 

、私が取得することは、別のテーブル内の各ユーザーによって行われたタスクです。この時点で、データベースから日付が見つからない場合は、テーブルにはエントリはありません。テーブルにはDate(サーバ日付)と投稿フィールドが表示されます。「今日はタスクが完了していません」と表示されます。

私の頭の中でさえ非常に愚かな。だから、この質問が正しいのではない場合、多くのお詫び申し上げます。しかし、誰かを助けることができたら、私はまだ感謝するでしょう。

+1

croneジョブを使用して、laravelでスケジュールを使用してタスクを追加したかどうかを確認してください。https://laravel.com/docs/5.4/scheduling –

答えて

0

最初に、デフォルトの値0の各ユーザーのステータスフラグが必要です。これは、今日行われたタスクがないことを意味します。

ユーザがタスクを入力するたびに、このステータスフラグを1に設定して、タスクが今日完了したことを意味します。

これで、翌日深夜0時以降、この深夜0時にこのフラグを自動的にリセットする必要があります。

これは、laravelでtask schedulingを使用して実現できます。

関連する問題