Theme
Primary Color

فحص إذا كان المستخدم Logged In وتحويله لصفحة معينة

إذا كنت تريد عرض الصفحة الرئيسية للزائر وتحويل المستخدم المسجل دخوله إلى صفحة ال Dashboard 

يمكنك فحص حالة تسجيل الدخول داخل ال Route

نفترض في هذا المثال أن نظام تسجيل الدخول موجود ويعمل في المشروع

لدينا ال Route التالية داخل ملف routes/web.php وهي تعرض صفحة ال Homepage

Route::get('/', function () {
  return view('homepage');
});

الدالة view('homepage') تعرض محتوى الملف 

resources/views/homepage.blade.php

والآن سنستخدم Auth::check() لفحص إذا كان المستخدم مسجل دخول أم لا

if (Auth::check()) {
  // User Is Logged In
}

ال Auth::check() بترجع القيمة true إذا كان المستخدم مسجل دخول باستخدام ال Guard الافتراضي 

وبترجع false إذا لم يكن مسجل دخول 

إذا تحقق الشرط سنقوم بتحويل المستخدم إلى ال Route المسماة dashboard

if (Auth::check()) {
  return redirect()->route('dashboard');
}

لاحظ أن dashboard هنا هي اسم ال Route المحدد باستخدام name() وليست اسم ال View

لذلك يجب أن تكون لديك Route بهذا الاسم مثل المثال التالي

Route::get('/dashboard', function () {
  return view('dashboard');
})->middleware('auth')->name('dashboard');

هذه ال Route تعرض الملف 

resources/views/dashboard.blade.php

  وتستخدم ال Middleware المسماة auth لمنع الزائر غير المسجل دخوله من الوصول إليها مباشرة

وهنا الكود كامل داخل ملف 

routes/web.php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
  if (Auth::check()) {
    return redirect()->route('dashboard');
  }

  return view('homepage');
});

Route::get('/dashboard', function () {
  return view('dashboard');
})->middleware('auth')->name('dashboard');

إذا كانت ال Route الخاصة بال Dashboard موجودة بالفعل في مشروعك استخدمها ولا تضفها مرة أخرى

الآن عند فتح الصفحة الرئيسية يتم فحص حالة تسجيل الدخول

إذا كان المستخدم مسجل دخول سيتم تحويله إلى صفحة ال Dashboard 

وإذا لم يكن مسجل دخول سيتم عرض صفحة ال Homepage

لا نحتاج لكتابة else لأن return داخل الشرط تنهي تنفيذ ال Function عند تحقق الشرط

framework laravel learn programming