راهنمای استفاده از ResourceRegistrar::prefixedResource() در لاراول ۱۱

laravel 11 routing prefixed resource
06 تیر 1404


سلام به همه! امروز می‌خواهیم در مورد یکی از ویژگی‌های جالب لاراول ۱۱ صحبت کنیم که به شما این امکان رو میده که با استفاده از متد ResourceRegistrar::prefixedResource()، مسیرهای پیشرفته‌تری برای کنترلرهای خود بسازید. این ویژگی به‌ویژه برای هنگامی که می‌خواهید مسیری خاص با پیشوند مشخصی داشته باشید، مفید است.


به‌طور مثال، فرض کنید شما یک وب‌سایت فروشگاهی دارید و می‌خواهید RESTful API ایجاد کنید. استفاده از متد prefixedResource به شما این امکان را می‌دهد که برای مجموعه‌ای از منابع URL‌هایی با پیشوند خاص بسازید. این موضوع می‌تواند به بهبود سازمان‌دهی سورس کد شما کمک کند و ضمن حفظ استانداردها، کد شما را خوانا‌تر نماید.


قبل از هر چیز باید مطمئن شوید که کنترلر و مدل‌های مورد نیاز برای ایجاد این مسیرها را دارید. پس از آن، با استفاده از این متد، مسیرها را تعریف می‌کنید. لاراول به‌طور خودکار مسیرهای CRUD را برای شما ایجاد می‌کند، در نتیجه لازم نیست هر بار خودتان آنها را بنویسید.


حالا بیایید نگاهی به چگونگی استفاده از prefixedResource داشته باشیم. ما در این مثال از یک پروژه کوچک استفاده خواهیم کرد که یک منبع به نام products را مدیریت می‌کند.


Route::prefix('api')->group(function () {
Route::resource('products', ProductController::class);
});

توضیحات کد


در اینجا ما یک گروه مسیر ایجاد کرده‌ایم که با api شروع می‌شود:


Route::prefix('api')->group(function () { ... });

سپس با استفاده از Route::resource('products', ProductController::class);، مسیرهای مربوط به کنترلر محصولات را تعریف می‌کنیم:


Route::resource('products', ProductController::class);

این کد به‌طور خودکار مسیرهای GET، POST، PUT و DELETE را برای محصولات شما ایجاد می‌کند.


سوالات متداول

؟

چرا باید از prefixedResource در لاراول استفاده کنم؟

؟

آیا می‌توانم یک پیشوند دلخواه استفاده کنم؟

؟

آیا prefixedResource تمام متدهای CRUD را تولید می‌کند؟