با سلام و شب بخیر دوستان عزیز !
من یک مقدار گیج شدم . توی دوره فروشگاهی (
@hesammousavi ) من قدم به قدم با حسام جان پیش رفتم ! حالا یک بحش هست که میاد سینگل پیج را فقط برای کامنت ها اکی می کند.
من اونجا از این کد در کنترلر دوره هایم استفاده می کنم :
public function single(Course $course)
{
$course = Course::get()->first();
$comments = $course->comments()->where('approved', 1)->where('parent_id', 0)->latest()->with('comments')->get();
return view('Home.course', compact('course', 'comments'));
}
ایشون از first استفاده نمی کنند ولی من مجبورم چون ارور :
Method Illuminate\Database\Eloquent\Collection::comments does not exist.
خب حالا که این کار رو می کنم مشکل حل می شود و سینگل پیج اکی می شود . ولی یک موردی دارد که خیلی جالبه :
slug ها متفاوت هست و کامنت های هر دوره جدا در اسلاگ خود نمایش داده میشود ولی همه ی عنوان ها و متن دوره ها و... یکی هست !
انگار برید داخل دو دوره راکت و همه چیشون یکی باشد !
{{ $course->title }}
وقتی یاین را وارد می کنم وارد هر اسلاگی می شوم فقط عنوان اولین دوه را بر می گرداند که بنظرم بدلیل first هست . البته برش هم دارم ارور می گیرد !
دوستان اگر راهی بلد هستید بفرمایید!
@masiht
سلام شما در کنترلرتون اگر خط زیر رو حذف کنید احتمالا مشکلتون حل میشه
$course = Course::get()->first();
این رو بر می دارم مهندس هیچی بر نمی گردونه ! خالی خالی
نه عنوان و نه هیچ چیز دیگر
اگر یه کمکی کنید ممنون می شوم چون واقعا گیج شدم !
شما میخوای single course رو برگردونی بعد دوباره اومدی اولین مقدار course رو فراخونی میکنه خوب اشتباه هست !! این خط رو بردار
$course = Course::get()->first();
اگر نمایش نمیده خوب مشکل از جای دیگه هست کد هات رو دوباره برسی کن یه سرچ توی گوگل بزنید در مورد route model binding
@masiht
دوست خوبم باید چند تا مورد رو بررسی کنید
۱- route ایی که میاد و این کد رو اجرا میکنه باید یکی از course ها رو پاس بده . شما می تونید با return $course قبل از همه کدهاتون توی تابع single() بیبینید چیو برمیگردونه مثلا return $course->id بعد تو ویو بیبنید این مقدار مثلا در یک تکست باکس چیو نشون میده.
۲- اگر course شما در مرحله بالا درست برمیگرده حالا بیاین و return $course->comments() رو چک کنید.
نکته : اگر با Tinker آشنایی داشته باشید این تستها خیلی راحت در محیط کنسول انجام میشه. در لینک زیر در موردش توضیح داده
https://roocket.ir/articles/training-with-laravel-tinker
باز هم به نتیجه نرسیدین خروجی موارد فوق رو بزارین اینجا با هم حلش کنیم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟