راکت
حل شده

مشکل در روابط بین جداول در لاروال

5 پاسخ

سلام .. من رابطه بین دو جدول که یک به چند باشه رو ایجاد کردم ولی موقع فراخوانی روابط با ارور زیر روبرو میشم
Trying to get property 'title' of non-object (View: C:\xampp\htdocs\afzar\resources\views\admin\episodes\index.blade.php)
تصاویر مربوطه رو میذارم میشه راهنمایی بفرمایین....
uu

33![\]\[2\]

تصویر سوم

تصویر چهارم
tt

کد خود را اینجا وارد کنید
reza ataei
reza ataei
@rezaataei54
ثبت پرسش جدید

پاسخ‌ها

5
وحید
وحید
@forughi.vahid

تخصص: Fullstack

بهترین پاسخ

@rezaataei54
رابطه یک به چند هست و هر episode چندین course داره ، در واقع $episode->courses یک آرایه از course هاست و توی فایل بلید مشخص نکردید که title کدوم course رو باید نشون بده . اگر میخواید عنوان همه course ها رو نشون بدید برای $episode->courses هم باید foreach استفاده کنید

reza ataei
reza ataei
@rezaataei54

تخصص: در حال یادگیری.....

@forughi.vahid متوجه نشدم.در واقع هر course چندین episode داره.
میشه یه خط کد بزنین متوجه شم؟

وحید
وحید
@forughi.vahid

تخصص: Fullstack

@rezaataei54

$episode->courses

کد بالا یک آرایه از course ها هست ،آرایه property title نداره ، بلکه هر کدوم از آیتم های آرایه این پراپرتی رو دارن. پس اگر میخواید عنوان همه course های این episode رو نشون بدید اول باید foreach کنید و توی foreach عنوان ها رو نمایش بدید.

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

reza ataei
reza ataei
@rezaataei54

تخصص: در حال یادگیری.....

@forughi.vahid احتمالا روابط رو اشتباه نوشتم چون اپیزودها آرایه ای از کورسها هستن و من برعکس نوشتم.میخوام مثلا عنوان دوره ای که اپیزود توش هست رو بیارم.

وحید
وحید
@forughi.vahid

تخصص: Fullstack

@rezaataei54
روابط اشتباه نوشته شده ، توی مدل Course تابع episodes باید نوشته بشه و hasMany باشه و توی مدل Episode تابع course باید belongsTo باشه , توجه کنید که تابع course هست نه courses ، توی بلید هم foreach اول رو روی اپیزد زدید باید روی دوره ها بزنید ، احتمالا توی کنترولر هم اپیزد ها رو get کردید به جای دوره ها .

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

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