Armin Rahmati
5 سال پیش توسط Armin Rahmati مطرح شد
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'));
    }

ثبت پرسش جدید
محمد حمزه
تخصص : برنامه نویس laravel
@mr.hamze00 5 سال پیش مطرح شد
0

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

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

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

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

Armin Rahmati
@arminrahmati999 5 سال پیش مطرح شد
0

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

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

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

{article:slug}

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


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
0

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

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


محمد حمزه
تخصص : برنامه نویس laravel
@mr.hamze00 5 سال پیش مطرح شد
0

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

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
@arminrahmati999 5 سال پیش مطرح شد
0

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


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

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