راکت
حل شده

خطا Property title does not exist on this collection instance

5 پاسخ

سلام دوستان من میخوام تو لاراول id یک مطلب رو بگیرم و تو یک صفحه نشون بدم
ولی خطا Property [title] does not exist on this collection instance رو دارم (title یکی از ستون های مربوط به اطلاعات مطلب هست)
این هم کد هام هست:
کنترلر:

public function ShowStory(request $request, story $story){
        $story = story::select('id','title','main_img','description','view')->where('id',$request->story)->get();
        return view('story',compact('story'));
    }

روت:

Route::get('/story/{story}', [StoryController::class, 'ShowStory'])->name('story')->middleware('auth','HasSub');
امین
امین
@alavi.gavad
ثبت پرسش جدید

پاسخ‌ها

5
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

وقتی از Route Model Binding لاراول استفاده می‌کنید نیازی به دوباره نوشتن کوئری ها و کدها نیست و اصلا هدفش همین ساده سازی بوده. فرضا اگر route شما چیزی شبیه به این باشه:

Route::get('/story/{story}', [StoryController::class, 'ShowStory'])->name('story')->middleware('auth','HasSub');

در کنترلرتون متد رو به این صورت بازنویسی کنید:

public function ShowStory(Request $request, Story $story){
    //تعریف شده هست $story اینجا متغیر
    return view('story', compact('story'));
}

پ ن: دقت کنید که برای اینکه از قواعد PSR-4 تبعیت کنید و بعدا به مشکلات زیادی نخورید، باید اسم مدل ها و کلاس هاتون رو با حرف اول بزرگ بنویسید.

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

سلام به شمادوست عزیز.
منظورتون single page هست؟

امین
امین
@alavi.gavad

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

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

امین
امین
@alavi.gavad

سلام خیلی ممنون من به این شکلی که گفتین نوشتم و تو صفحه blade ام dd گرفتم و این ها رو برام آورد:
به چه شکل باید این موارد رو از ارایه دربیارم و نشونش بدم؟

 تصویر

امین
امین
@alavi.gavad

دوستان من همچنان درگیر این خطا هستم!

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

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