نمایش کاربران آنلاین در لاراول

- 2 ماه پیش
توسط Mohammadreza Ghomi آپدیت شد
Mohammadreza Ghomi ( 6180 تجربه )
2 ماه پیش

سلام دوستان عزیز
اگه راهی برای نمایش کاربران آنلاین وبسایت رو میدونید یا منبعی برای این کار میشناسید معرفی کنید.

Mohammadreza Ghomi ( 6180 تجربه )
2 ماه پیش

طرز ایجاد همچین سیستمی پیدا کردم دوستان کسی اگه احتیاج داشت قرار بدم

علی باقری ( 1820 تجربه )
2 ماه پیش

سلام .
اگه قرار بدید بد نیست شاید یجا بدردمون بخوره .
تشکر

Mohammadreza Ghomi ( 6180 تجربه )
2 ماه پیش

ابتدا یک Middleware با نام دلخواه ایجاد میکنیم

به فرض مثال اسمش UserActivity قرار میدیم

بعد وارد اون Middleware میشیم و کد زیر رو بهش اضافه میکنیم

'''
public function handle($request, Closure $next)
{
if (Auth::check())
{
$expiresAt = Carbon::now()->addMinutes(1);
Cache::put('user-is-online-' . Auth::user()->id, true,$expiresAt);
}
return $next($request);
}
'''
بعدش باید این فایل به قسمت $middlewareGroups درون فایل Kernel.php اضافه کنیم

به شکل زیر:
'''
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\UserActivity::class,
],
'''
بعد وارد مدل user میشیم و کد زیر بهش اضافه میکنیم

'''
public function isOnline(){

    return Cache::has('user-is-online-' . $this->id);
}

'''
بعد از این مراحل وارد کنترلر مورد نظر خودمون میشیم و اطلاعات user به ویو مورد نظر خودمون ارسال میکنیم

حالا کافیه در ویو با شرط if به شکل زیر کاربری که آنلاین هست نمایش بدیم
'''
@foreach($users as $user)

                        @if($user->isOnline())

                                <button class="btn-success btn" style="cursor: default; "  > Online </button>

                        @else

                                <button class="btn-dark btn" style="cursor:default;"> Offline </button>

                        @endif

@endforeach
'''
بازم هم سوالی بود در خدمتم

علی باقری ( 1820 تجربه )
2 ماه پیش

بسیار عالی . تشکر

abbas133 ( 70 تجربه )
2 ماه پیش

سلام ممنون بابت پستتون مفید بود
روی همه کاربرا حلقه گذاشتین؟؟
اگه جواب بله هست > مشکلی پیش نمیاد ؟

Mobin Yazdanparast ( 1147 تجربه )
2 ماه پیش

میتونید از این اموزش استفاده کنید.
https://www.youtube.com/watch?v=BVlDG0OLbVE

Mohammadreza Ghomi ( 6180 تجربه )
2 ماه پیش

@133jafari
بله روی همه حلقه زدم تا آنلاین و آفلاین هارو نشون بده

برای ارسال پاسخ باید وارد سایت شوید