11 أساسيات Laravel 11: توليد الروابط

Anis MarrouchiAI Bot
بواسطة Anis Marrouchi & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

يوفر Laravel عدة مساعدات لمساعدتك في توليد روابط URL لتطبيقك. هذه المساعدات مفيدة عند بناء الروابط في قوالبك واستجابات API، أو عند توليد استجابات إعادة توجيه إلى جزء آخر من تطبيقك.

توليد الروابط

يمكن استخدام مساعد url لتوليد روابط URL عشوائية لتطبيقك. سيستخدم الرابط المولد تلقائياً المخطط (HTTP أو HTTPS) والمضيف من الطلب الحالي:

$post = App\Models\Post::find(1);
echo url("/posts/{$post->id}");
// http://example.com/posts/1

لتوليد رابط URL مع معاملات سلسلة الاستعلام، يمكنك استخدام طريقة query:

echo url()->query('/posts', ['search' => 'Laravel']);
// https://example.com/posts?search=Laravel

تقديم معاملات سلسلة الاستعلام الموجودة بالفعل في المسار سيستبدل قيمتها الحالية:

echo url()->query('/posts?sort=latest', ['sort' => 'oldest']);
// http://example.com/posts?sort=oldest

الوصول إلى الرابط الحالي

إذا لم يتم توفير مسار لمساعد url، يتم إرجاع مثيل Illuminate\Routing\UrlGenerator، مما يتيح لك الوصول إلى معلومات حول الرابط الحالي:

echo url()->current(); // الحصول على الرابط الحالي بدون سلسلة الاستعلام
echo url()->full(); // الحصول على الرابط الحالي بما في ذلك سلسلة الاستعلام
echo url()->previous(); // الحصول على الرابط الكامل للطلب السابق

روابط المسارات المسماة

يمكن استخدام مساعد route لتوليد روابط URL للمسارات المسماة. تتيح لك المسارات المسماة توليد روابط URL دون أن تكون مرتبطة بالرابط الفعلي المحدد في المسار. على سبيل المثال، تخيل أن تطبيقك يحتوي على مسار محدد كالتالي:

Route::get('/post/{post}', function (Post $post) {
  // ...
})->name('post.show');

لتوليد رابط URL لهذا المسار، يمكنك استخدام مساعد route:

echo route('post.show', ['post' => 1]);
// http://example.com/post/1

أي عناصر مصفوفة إضافية لا تتوافق مع معاملات تعريف المسار ستضاف إلى سلسلة استعلام الرابط:

echo route('post.show', ['post' => 1, 'search' => 'rocket']);
// http://example.com/post/1?search=rocket

الروابط الموقعة

يتيح لك Laravel إنشاء روابط URL "موقعة" بسهولة للمسارات المسماة. تحتوي هذه الروابط على تجزئة "توقيع" ملحقة بسلسلة الاستعلام مما يسمح لـ Laravel بالتحقق من أن الرابط لم يتم تعديله منذ إنشائه. لإنشاء رابط URL موقع لمسار مسمى، استخدم طريقة signedRoute من واجهة URL:

use Illuminate\Support\Facades\URL;
 
return URL::signedRoute('unsubscribe', ['user' => 1]);

لتوليد رابط مسار موقع مؤقت ينتهي بعد فترة زمنية محددة، استخدم طريقة temporarySignedRoute:

use Illuminate\Support\Facades\URL;
 
return URL::temporarySignedRoute('unsubscribe', now()->addMinutes(30), ['user' => 1]);

التحقق من صحة طلبات المسار الموقع

للتحقق من أن الطلب الوارد يحتوي على توقيع صالح، استدعِ طريقة hasValidSignature على مثيل Illuminate\Http\Request الوارد:

use Illuminate\Http\Request;
 
Route::get('/unsubscribe/{user}', function (Request $request) {
  if (! $request->hasValidSignature()) {
    abort(401);
  }
  // ...
})->name('unsubscribe');

روابط إجراءات المتحكم

تولد دالة action رابط URL لإجراء المتحكم المعطى:

use App\Http\Controllers\HomeController;
 
$url = action([HomeController::class, 'index']);

إذا كانت طريقة المتحكم تقبل معاملات المسار، يمكنك تمرير مصفوفة ترابطية من معاملات المسار كوسيط ثانٍ للدالة:

$url = action([UserController::class, 'profile'], ['id' => 1]);

القيم الافتراضية

يمكنك تحديد قيم افتراضية على مستوى الطلب لمعاملات URL معينة باستخدام طريقة URL::defaults. على سبيل المثال، قد ترغب في تعيين قيمة افتراضية لمعامل {locale} في مساراتك:

$request->user()->locale
]);
 
return $next($request);
}
}

الخاتمة

استخدام مساعدات توليد الروابط في Laravel يمكن أن يبسط التوجيه والتنقل في تطبيقك. سواء كنت تولد روابط في القوالب أو تنشئ روابط URL موقعة وآمنة، تساعدك هذه الأدوات في بناء تطبيق قوي وقابل للصيانة. لمزيد من المعلومات التفصيلية، راجع توثيق توليد الروابط الرسمي في Laravel.

تعرف على المزيد حول توليد الروابط في Laravel 11 وعزز قدرات التوجيه في تطبيقك. راجع التوثيق الرسمي لمزيد من الأمثلة والاستخدام المتقدم.


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على دمج الدفع عبر الويب من Moyasar باستخدام بطاقات الائتمان.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة

10 أساسيات Laravel 11: تجميع الأصول

تعلم أساسيات تجميع الأصول في Laravel 11 باستخدام Vite، بما في ذلك التثبيت والتكوين والأمثلة العملية لتطوير الويب.

10 د قراءة·

9 أساسيات Laravel 11: قوالب Blade

تعلم أساسيات قوالب Blade في Laravel 11، مع التركيز على الميزات الرئيسية والأمثلة العملية لتعزيز مهاراتك في تطوير الويب.

10 د قراءة·