我想从三个表中检索数据:课程,能力和能力标准。以下查询几乎可以正常工作,但它不会带回关联的competency_standards
表数据。
$coursesAndComps = Course::with(
array('competencies' => function($query)
{
Competency::with('competency_standards');
})
)->get()->toArray();
competencies
表链接到courses
表(competencies.course_id = course.id),competency_standards
表链接到competencies
表(competency_standards)。 compey_id = competency.id)。
返回的数组如下所示:
Array
(
[0] => Array
(
[id] => 1
[name] => the first course
[competencies] => Array
(
[0] => Array
(
[id] => 9
[course_id] => 1
[name] => first course comp 1
)
[1] => Array
(
[id] => 10
[course_id] => 1
[name] => first course comp 2
)
)
)
)
但在competencies
数组中,我希望找到另一个名为competency_standards
的数组,如下所示:
...
[0] => Array
(
[id] => 9
[course_id] => 1
[name] => first course comp 1
[competency_standards] => Array
(
[0] => Array
(
[id] => 22
[competency_id] => 9
[name] => standard foo
)
[1] => Array
(
[id] => 23
[competency_id] => 9
[name] => standard bar
)
)
)
...
这可能吗?我是以错误的方式解决这个问题吗?
答案 0 :(得分:8)
应该可以使用:
$coursesAndComps = Course::with('competencies', 'competencies.standards')
->get()->toArray();
但当然您需要在standards
模型中定义Competency
关系,以便将Competency
与Standard