نقطة
  • الرئيسية
  • الخدمات
  • من نحن
  • الكتابات
  • تسجيل الدخول
الكتابات/tutorial/2024/06
● Tutorial15 يونيو 2024·10 دقيقة

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

تعلم أساسيات توليد الروابط في Laravel 11، بما في ذلك توليد روابط للمسارات والمتحكمات والروابط الموقعة.

Anis Marrouchi
Anis Marrouchi
Author
·EN · FR · AR

يوفر 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 وعزز قدرات التوجيه في تطبيقك. راجع التوثيق الرسمي لمزيد من الأمثلة والاستخدام المتقدم.

● الوسوم
#Laravel#توليد الروابط#تطوير الويب#Intermediate#10 دقيقة قراءة
● مشاركة
● هل لديك سؤال؟

تحدث مع وكيل نقطة بشأن هذا المقال.

Anis Marrouchi
Anis Marrouchi
Author · noqta
متابعة ↗

● اقرأ التالي

الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل
● Tutorial

الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل

29 مايو 2024
Astro 5: بناء موقع محتوى فائق السرعة باستخدام هندسة الجُزر
● Tutorial

Astro 5: بناء موقع محتوى فائق السرعة باستخدام هندسة الجُزر

25 فبراير 2026
أتمتة سير العمل مع Zapier وWebhooks في تطبيق Next.js
● Tutorial

أتمتة سير العمل مع Zapier وWebhooks في تطبيق Next.js

19 مايو 2024
نقطة
الشروط والأحكام · سياسة الخصوصية
الخدمات
  • أتمتة الذكاء الاصطناعي
  • وكلاء الذكاء الاصطناعي
  • أتمتة تجربة العملاء
  • Vibe Coding
  • إدارة المشاريع
  • ضمان الجودة
  • تطوير الويب
  • تكامل API
  • تطبيقات الأعمال
  • الصيانة
  • Low-Code/No-Code
الروابط
  • معلومات عنا
  • كيف نعمل؟
  • الأخبار
  • الدروس التعليمية
  • المدونة
  • تواصل معنا
  • الأسئلة الشائعة
  • الموارد
المناطق
  • السعودية
  • الإمارات
  • قطر
  • البحرين
  • عُمان
  • ليبيا
  • تونس
  • الجزائر
  • المغرب
الشركة
  • نقطة، تونس، الهاتف +216 24 309 128
© نقطة. جميع الحقوق محفوظة.