راکت
حل شده

نمایش ندادن اطلاعات

5 پاسخ

سلام دوستان.
با استفاده از 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'));
    }
ثبت پرسش جدید

پاسخ‌ها

5
محمد حمزه
محمد حمزه
@mr.hamze00

تخصص: برنامه نویس laravel

بهترین پاسخ

سلام تیکه کدی که نوشتید باید به این شکل باشه

Route::get('/article/{article}' , 'ArticleController@single');

یا اگه قراره برحسب فیلد خاصی در دیتابیستون باشه مثلا slug باید به این شکل باشه

Route::get('/article/{article:slug}' , 'ArticleController@single');
Armin Rahmati
Armin Rahmati
@arminrahmati999

@mr.hamze00
تشکر از شما دوست عزیز.
به صورت

Route::get('/article/{article:slug}' , 'ArticleController@single');

حل شد.
امکانش هست یه توضیحی راجب این تیکه بدین.

{article:slug}

و چرا به صورتی که خودم تعریف کردم جواب نمیداد؟

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

وقتی از route model binding استفاده میکنین باید convention رو رعایت کنید اینکه توی روت شما articleSlug میگید و توی مدل $article درست نیست

او این کدی که دوستمون داد فیچر جدید لاراول 7 هستش

شاید پاسخ شما همین‌جا باشد

محمد حمزه
محمد حمزه
@mr.hamze00

تخصص: برنامه نویس laravel

خواهش می کنم 🙏
اون صورتی که شما نوشته بودی عملا اشتباه بود وقتی کد به این شکل نوشته میشه

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

Armin Rahmati
Armin Rahmati
@arminrahmati999

@mr.hamze00
بازم تشکر.
پیروز باشید.
@juza66
همچنین از شما هم ممنونم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام