سلام و احترام
این نکتهی آموزشیه خاااصی نیست و باگ هم نیست چون مطمئنا در ادامه استاد درستش میکنه اما فقط برای اینکه یه توجهی داشته باشیم بهش، بیانش میکنم.
خیلی خلاصه اگه بخوام بگم، نکتهای که بهش برخوردم الان و در حین آموزش هم نظرمو جلب کرده بود، اینه که توی صفحهی videos/show ما گفتیم در سمت چپ، related videos نشون داده بشن؛ و تعداد این ویدئوهای مرتبط رو هم در مسیر App\View\Components\RelatedVideos توی بخش construct ده عدد قرار دادیم.
حالا ما اگه اصلا دهتا ویدئو نداشته باشیم که اونجا به طور رندوم نشون بدیم چی؟
دقیقا در این صورت چون ولیدیشنی برای تعداد ویدئوهای درخواستیمون برای قرار گرفتن توی اون بخش قرار ندادیم، با کلیک روی یک ویدئو به جهت دیدن صفحهی مربوط به اون، ارور برمیگرده و میگه فلان تعدا ویدئو برای بخش ویدئوهای مرتبط وجود نداره؛
حالا من نمیدونم، شاید با یه حرکت خیلی ساده توی لاراول این مشکل حل بشه، اما من با یک ولیدیشن ساده در متد relatedVideos در App\Models\Video حلش کردم
کد و باگشو میزارم اگه دوس داشتید استفاده کنید... ❤
راه حل:
public function relatedVideos(int $count = 0)
{
$numberOfVideosInDatabase = count(Video::all());
if ($count > $numberOfVideosInDatabase)
{
return $newResult = Video::all()->random($numberOfVideosInDatabase);
}
return Video::all()->random($count);
}
همین موضوع در صفحهی index پروژه هم وجود داره. یعنی اگر ما هیچ ویدئویی توی دیتابیسمون نداشته باشیم، با بالا آوردن صفحهی index.blade یا همون صفحهی اصلی ویدئوهامون با ارور مواجه میشیم. چون در کلاس VideoController متد index ما دادههای دیتابیس رو دریافت کردیم و به صفحهی index فرستادیم. با این وجود در صورتی که دادهای برای فرستاده شدن به این صفحه وجود نداشته باشه، یا تعدادش از اون چیزی که ما تنظیم کردیم (۶) کمتر باشه، ارور برمیگردونه مثل تصویر زیر:
که البته برای این مشکل، من هنوز کاری نکردم :)
موفق باشید..