gpt4 book ai didi

php - Laravel Eloquent Eager Loading 倍数有很多关系

转载 作者:行者123 更新时间:2023-11-29 05:52:12 33 4
gpt4 key购买 nike

在我的数据库中,模型 Class 有很多 Student 并且每个 Student 都有很多 Homework 并且每个 家庭作业 有很多问题。我如何编写一个带有预先加载的查询来获取与一个特定 Class 相关的每个 Question

我可以用这段代码得到一个嵌套结构:

$class = Class::find($classId);
$collection = $class->with('students.homeworks.questions')->get();

如何获取此集合中所有问题的数组?我目前使用 toArray() 方法得到的是这样的结构:

{ //Class
...
students: [
{
homeworks: [
{
questions: [{...}]
},
...
]
},
...
]
}

最佳答案

这种情况没有原生关系。

我创建了一个无限级别的HasManyThrough 关系:Repository on GitHub

安装完成后可以这样使用:

class Class extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

public function questions() {
return $this->hasManyDeep(Question::class, [Student::class, Homework::class]);
}
}

关于php - Laravel Eloquent Eager Loading 倍数有很多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52959226/

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