🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ سید جمال جلالی
آیا این روش هم درسته ؟؟؟؟
جامعه لاراول ایجاد شده در ۰۲ آذر ۱۴۰۱

سلام

من با توجه به داکیومنت این روش رو استفاده کردن که به نظرم خیلی راحته :

1- روت ارسالی از سمت view رو اینجوری تعریف کردم

<a href="{{ route('videos.show', $video) }}"><img src="{{ $video->thumbnail }}" alt="">a>

یعنی مستقیم خود آبجکت کلیک شده رو فرستادم سمت روت video.show به جای اینکه بیام آیدیش رو بفرستم یا اینکه اسلاگ رو بفرستم !!

2 - حالا اینجا داخل روت‌ها با توجه به اینکه آبجکت فرستادیم دستمون بازه و هر چی رو که بخواییم میتونیم اون بالا داخل url نشون بدیم به این صورت :

Route::get('/videos/{video:slug}', [VideoController::class, 'show'])->name('videos.show');
Route::get('/videos/{video:id}', [VideoController::class, 'show'])->name('videos.show');

3 - تازه سمت کنترلر هم میتونیم خود آبجکت کلیک شده رو دریافت کنیم و بفرستیم هر جا که میخوایم :

 public function show( Video $video)
    {
      return view('videos.show', compact('video'));
    }

**** اینجوری دیگه لازم نیست مدل رو تغییر بدیم و فانکشن ()getRouteKeyName رو بهش اضاف کنیم و ازش بخواییم که ; 'return 'slug

درست میگم ؟؟؟؟؟

سلام جمال عزیز

برای پیاده سازی سولوشن‌های زیادی هست و طبیعتا هرچی سولوشن ما بهینه‌تر باشه بهتره.

این مورد بستگی به سطح شما و پروژتون داره.

بهترین پاسخ
احمدرضا فاطمی کیا ۰۲ آذر ۱۴۰۱، ۰۷:۵۰

اوکی

فقط میخواستم مطمعن بشم روشم درسته یا نه ؟؟

که اگه درست باشه بهتره ما همیشه از سمت ویو هامون خود آبجکت کلیک شده رو بفرستیم بیاد سمت روت این شکلی :

<a href="{{ route('videos.show', $video) }}"><img src="{{ $video->thumbnail }}" alt="">a>

نه اینکه بیایم id یا slug اون رو بفرستیم و بعدش خودمون رو اذیت کنیم !!!

سید جمال جلالی ۰۲ آذر ۱۴۰۱، ۰۸:۰۳