reza ataei
4 سال پیش توسط reza ataei مطرح شد
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

کد خود را اینجا وارد کنید

ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
1

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


reza ataei
تخصص : در حال یادگیری.....
@rezaataei54 4 سال پیش مطرح شد
0

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


وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
0

@rezaataei54

$episode->courses

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


reza ataei
تخصص : در حال یادگیری.....
@rezaataei54 4 سال پیش مطرح شد
0

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


وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش مطرح شد
0

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


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

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