إعادة التوجيه (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()فيفقد المستخدم ما كتبه عند خطأ التحقّق.
🎯 التالي: الهجرات والتعامل مع قاعدة البيانات.