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

يوفر 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 11: التثبيت والتكوين وهيكل المجلدات
البدء مع Laravel 11: التثبيت والتكوين وهيكل المجلدات

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

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