php - 如何在laravel eloquent中建立三个表之间的关系
问题描述
我有三个表,部分,问题和选项。每个部分都有很多问题,每个问题都有很多选项。如何从这些相互关联的表中获取数据?
部分模型与 Question 模型的关系
class Section extends Model
{
use HasFactory;
protected $primaryKey='sectionid';
public function questions(){
return $this->hasMany(Question::class,'sectionid')->orderBy('order');
}
}
Question模型与Option模型的关系:
class Question extends Model
{
use HasFactory;
protected $primaryKey='questionid';
public $timestamps = true;
public function options(){
return $this->hasMany(Option::class,'questionid');
}
}
我的查询:
$data=Section::with('questions')
->where('formid',$formId)
->orderBy('sectionid')
->get()
->toJson();
我希望每个问题成员都包含与之相关的选项数组。
解决方案
您可以使用嵌套关系,如下所示。因此它也会获取问题选项
$data=Section::with(['questions','questions.options'])
->where('formid',$formId)
->orderBy('sectionid')
->get()
->toJson();
推荐阅读
- html - 如何检测Angular中元素外部的点击?
- python - Python,位置初始化(使用列表)完整解释
- heron - 无法使用 SchedulerStateManagerAdaptor 更新 Heron 拓扑
- angular - Angular 5 路由器链接为 NaN
- android - openfire没有从android genymotion模拟器连接
- vba - 如何使用 VBA 迭代 Word 中的多选文本?
- c# - 将 Object 调用作为参数传递/绑定到 UserControl
- angular - 动态呈现 HTML 时,'foo' 不是已知元素
- c# - 下载 .xlsx 文件返回损坏的文件
- c++ - 如何查看 CMake 使用了哪些 gcc 选项?