فحص إذا كان المستخدم Logged In وتحويله لصفحة معينة
إذا كنت تريد عرض الصفحة الرئيسية للزائر وتحويل المستخدم المسجل دخوله إلى صفحة ال Dashboard
يمكنك فحص حالة تسجيل الدخول داخل ال Route
نفترض في هذا المثال أن نظام تسجيل الدخول موجود ويعمل في المشروع
لدينا ال Route التالية داخل ملف routes/web.php وهي تعرض صفحة ال Homepage
Route::get('/', function () {
return view('homepage');
});الدالة view('homepage') تعرض محتوى الملف
والآن سنستخدم 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 تعرض الملف
وتستخدم ال Middleware المسماة auth لمنع الزائر غير المسجل دخوله من الوصول إليها مباشرة
وهنا الكود كامل داخل ملف
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 عند تحقق الشرط