سلام دوستان.
با استفاده از Route Model Binding میخوام اطلاعات یک مقاله رو نشون بدم ولی نه عکس مقاله رو نشون میده و نه کامنت های مربوط به اون مقاله.
Route
Route::get('/article/{articleSlug}' , 'ArticleController@single');
Controller
public function single(Article $article) {
$article->increment('viewCount');
$comments = $article->comments()->where('parent_id' , 0)->latest()->get();
return view('Home.article' , compact('article' , 'comments'));
}@mr.hamze00
تشکر از شما دوست عزیز.
به صورت
Route::get('/article/{article:slug}' , 'ArticleController@single');
حل شد.
امکانش هست یه توضیحی راجب این تیکه بدین.
{article:slug}
و چرا به صورتی که خودم تعریف کردم جواب نمیداد؟
شاید پاسخ شما همینجا باشد
خواهش می کنم 🙏
اون صورتی که شما نوشته بودی عملا اشتباه بود وقتی کد به این شکل نوشته میشه
Route::get('/article/{article}' , 'ArticleController@single');
پیشفرض میره id جدول رو چک می کنه و اگه بود رکورد رو برمیگردونه
تو مدل دوم ینی این
Route::get('/article/{article:slug}' , 'ArticleController@single');
که تو لاراول 7 اضافه شده به شما این امکان رو میده که بر اساس یک فیلد خاص در دیتابیستون route model binding رو انجام بدین
داکیومنت کامل ترش اینجا هست
https://laravel.com/docs/7.x/routing#route-model-binding
@mr.hamze00
بازم تشکر.
پیروز باشید.
@juza66
همچنین از شما هم ممنونم.