我正在将Laravel中的一个简单的报告卡系统作为一种学习工具。目前,我有一个Pupil
表,一个Subject
表和一个由Pupil_Subject
和id, pupil_id, subject_id,
列组成的grade
数据透视表。
我将Pupil和Subject模型关系设置为belongsToMany
。但是,如果我在Tinker中运行$pupil = App\Pupil::find(1)->subjects
,我会得到以下输出:
Illuminate\Database\Eloquent\Collection {#729
all: [
App\Subject {#726
id: 1,
subjectname: "English",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#731
pupil_id: 1,
subject_id: 1,
},
},
App\Subject {#728
id: 2,
subjectname: "Maths",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#730
pupil_id: 1,
subject_id: 2,
},
},
],
}
没有学生(1)的学生信息,subjects
中没有成绩栏的标志。我做错了什么?
答案 0 :(得分:2)
如果您需要同时获取Pupil
和Subject
个对象,请使用eager loading:
$pupil = App\Pupil::with('subjects')->find(1);