در این قسمت سعی داریم مطالبی مفید و کاربردی در مورد url ها در لاراول بپردازیم.

Laravel چند تابع helper ( کمکی) برای تولید URLها در برنامه در اختیار ما قرار داده است. البته، استفاده از این توابع عمدتا در زمان ایجاد لینک‌ها‌ در قالب‌های HTML و پاسخ‌های API، یا در زمان ایجاد پاسخ‌های redirect شده به قسمت‌های دیگر برنامه، مفید خواهد بود.

ساخت URLهای اصلی
helper یا تابع کمکی url برای ایجاد URLهای دلخواه در برنامه استفاده می‌شود. URL ایجاد شده به صورت خودکار از طرح HTTP یا HTTPS استفاده می‌کند و از درخواست فعلی میزبانی می‌کند:

دسترسی به اطلاعات URL فعلی در لاراول
اگر هیچ مسیری برای تابع کمکی url وجود نداشته باشد، یک نمونه کلاس Illuminate\Routing\UrlGenerator بازگردانده می‌شود، که امکان می‌دهد به اطلاعات مربوط به URL فعلی دسترسی داشته باشیم:

توجه کنید که هر یک از این متدها می‌تواند از طریق URL fasade نیز قابل دسترسی باشد:

برای تولید URL به مسیرهای نامگذاری شده، می‌توان از تابع کمکی route استفاده کرد. مسیرهای نامگذاری شده به شما امکان می‌دهد که URLها را بدون اتصال به URL واقعی تعیین شده در مسیر، ایجاد کنید. بنابراین، اگر URL مسیر تغییر کند، هیچ تغییری در فراخوانی‌ تابع route صورت نمی‌گیرد. برای مثال، فرض کنید برنامه دارای یک مسیر تعریف شده مانند مثال زیر است:

برای تولید یک URL برای این مسیر، می‌توانید از تابع کمکی route مانند مثال زیر استفاده کنید:

اغلب URLها را می‌توان با استفاده از کلید اولیه مدل‌های Eloquent ایجاد کرد. به همین دلیل، می‌توان مدل‌های Eloquent را به عنوان مقادیر پارامتر به تابع کمکی انتقال داد. تابع کمکی route به صورت خودکار کلید اصلی در مدل را استخراج می‌کند:

تولید URLها برای اکشن‌های کنترلر در لاراول
از تابع action می‌توان جهت تولید URL برای یک اکشن کنترلر استفاده کرد. در این صورت، لازم نیست فضای نامی کامل کنترلر را انتقال داد. به جای آن، می توان نام کلاس کنترلر را نسبت به فضای نامی App\Http\Controllers انتقال داد:

اگر متد کنترلر پارامترهای مسیر را می‌پذیرد، می‌توانید آن‌ها را به عنوان آرگومان دوم به این تابع انتقال دهید:

انتقال مقادیر پیش‌فرض به URL در لاراول
برای برخی از برنامه‌ها، ممکن است بخواهید مقادیر پیش‌فرض درخواستی را برای پارامترهای خاص URL تعیین کنید. برای مثال، فرض کنید بسیاری از مسیرها دارای یک پارامتر {locale} باشند:

زمانی که تابع کمکی route را فراخوانی می‌کنید، انتقال locale ممکن است کمی کار را دشوار کند. بنابراین، می‌توانید از متد URL::defaults برای تعریف یک مقدار پیش‌فرض برای این پارامتر که همیشه در طول درخواست فعلی اعمال می‌شود، استفاده کنید. می‌توانید این متد را از middleware مسیر فراخوانی کنید تا بتوانید به درخواست فعلی دسترسی داشته باشید:

زمانی که مقدار پیش‌فرض برای پارامتر locale تنظیم شده باشد، دیگر نیازی به انتقال مقدار آن در زمان ایجاد URLها از طریق تابع کمکی route نیست.

منبع : سایت لاراول

نحوه تولید URL در لاراول ۵٫۵

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *