我有以下架构:
+------------+
| categories |
+------------+
| id |
+------------+
+-------------+
| sections |
+-------------+
| id |
| category_id |
+-------------+
+------------+
| questions |
+------------+
| id |
| section_id |
+------------+
+------------+
| clients |
+------------+
| id |
+------------+
+-------------------+
| client_questions |
+-------------------+
| client_id |
| question_id |
+-------------------+
如您所见,问题在部分中,部分在类别中。
系统管理员可以为每个单独的客户打开或关闭问题,因此我创建了 client_questions 来创建客户和问题之间的多对多关系。
现在,我想利用 Eloquent 的强大功能来获取客户的类别(列出所有问题),但我似乎无法完全理解查询构建器。
基本上我目前可以通过我在模型中定义的多对多关系来做 $client->questions:
public function questions() {
return $this->belongsToMany(Question::class,'client_questions','client_id','question_id');
}
但考虑到分离程度,我似乎无法弄清楚如何在客户和类别之间做同样的事情。
基本上我想这样做$client->categories
,然后我可以列出整个采访:
@foreach( $client->categories as $category)
@foreach( $category->sections as $section)
@foreach( $secion->questions as $question )
{{ $question->question }}
@endforeach
@endforeach
@endforeach