🔺 شرح Laravel

إعادة التوجيه والجلسات

إعادة التوجيه (Redirect)

<?php
return redirect('/home');                      // لمسار
return redirect()->route('posts.index');       // لمسار مُسمّى
return redirect()->back();                      // للصفحة السابقة
return redirect()->away('https://google.com');  // لموقع خارجي

بعد عملية ناجحة (نمط شائع جدًّا):

<?php
public function store(Request $request)
{
    Post::create($request->validated());

    return redirect()
        ->route('posts.index')
        ->with('success', 'تمّ إنشاء المقال');
}

الجلسات (Session)

لتخزين بيانات بين الطلبات (سلّة، تفضيلات):

<?php
// تخزين
session(['cart' => $items]);
$request->session()->put('user_id', 42);

// قراءة
$cart = session('cart');
$userId = $request->session()->get('user_id');

// فحص وحذف
if (session()->has('cart')) { /* ... */ }
session()->forget('cart');
session()->flush();   // مسح الكل

رسائل الومضة (Flash)

تبقى لطلب واحد فقط — مثالية لرسائل النجاح بعد إعادة التوجيه:

<?php
return redirect('/dashboard')->with('status', 'تمّ الحفظ');

عرضها في Blade:

@if(session('status'))
  <div class="alert">{{ session('status') }}</div>
@endif

@if(session('success'))
  <div class="success">{{ session('success') }}</div>
@endif

الإدخال القديم (Old Input)

للاحتفاظ بقيم النموذج بعد خطأ تحقّق:

<input name="title" value="{{ old('title') }}">

أخطاء شائعة

  • توقّع بقاء رسالة الومضة لأكثر من طلب — هي لطلب واحد فقط.
  • نسيان old() فيفقد المستخدم ما كتبه عند خطأ التحقّق.

🎯 التالي: الهجرات والتعامل مع قاعدة البيانات.