gpt4 book ai didi

php - 在 with 函数的子查询中使用 Eloquent 模型属性

转载 作者:行者123 更新时间:2023-11-30 22:44:32 26 4
gpt4 key购买 nike

我的问题可能比较困惑,因为我已经开始学习 Laravel。

我可以在 with() 函数的子查询中使用 eloquent 模型属性吗?

我有classesstudentsgrades 表。我想得到

$classes = [{id:1, name:'maths', students:[{id:2, name: john,
grade:B},{id:1, name: Mac, grade:C}]}, {id:2, name:'physics',
students:[{id:2, name: john, grade:null},{id:1, name: Mac,
grade:null}]}]

例如:

        $classes = Class::with(['students' => function($query){ 
->leftJoin('grades', 'grades.student_id', '=', 'students.id')
}])->get()->toJSON();

此查询未选择相关类(class)的正确成绩。我希望在连接条件中使用 class::id = grades.class_id

我使用 leftJoin 是因为有些类(class)可能还没有发布成绩。

最佳答案

你需要这样做:

 $classes = Class::with(['students' => function($query){ 
->leftJoin('grades', function($join) {
$join->on('grades.student_id', '=', 'students.id');
$join->on('grades.class_id', '=', 'class.id');
})
}])->get()->toJSON();

关于php - 在 with 函数的子查询中使用 Eloquent 模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com