私は3分ごとにハートビートで定期的にログインしたユーザを確認するLaravelアプリを持っています(デモの目的、実際は5分)。ビートごとに、ユーザーの現在の最後のアクティビティも5分かどうかを確認します。そうであれば、ログアウトしてください。5分以上経過したLaravel selectレコード?
$result = DB::table('db_user')->where('id_user','=',Session::get('id_user'))->where('last_activity','>=',"now() - interval 5 minute")->get();
if(!empty($result))
return Redirect::to('/logout');
else
return Response::json('still-alive');
私の問題があり、これは動作しません:
は、ここに私のコードです。オペランドを<=
に変更すると、オペランドが>=
なら5分前にログアウトされますが、5分後でもログアウトされません。理由を説明できますか?
-EDIT-
すべての答えのおかげでは、私は自分のコードを変更することで、私の問題を解決:あなたのビジネスロジックが正しいと仮定すると
$result = DB::table('db_user')->where('id_user','=',Session::get('id_user'))->first();
if(!empty($result))
if(strtotime($result->last_activity) < strtotime("-5 minutes"))
return Redirect::to('/logout');
else
return Response::json('still-alive');
else
return Response::json('no-record');
おかげで、私もあなたを試みたが、それは動作します。 D – user2002495
あなたはCarbon(デフォルトではLaravelに含まれています)を使用して、フォーマットされたファイルを作成することもできます。これは、あなたの時間のために受け入れられアップアップされました。 date: '$ formatted_date = Carbon :: now() - > subMinutes(5) - > toDateTimeString();' – murze