如何递归获取数据并使用联接

时间:2019-01-05 16:26:48

标签: laravel

我有一张这样的桌子。

transport_types

id name parent_id

现在,如您所见,此结构是邻接关系(递归)。所以我想要的是让所有孩子和孩子的孩子直到我有特定ID为止。因此,例如,用户将我的ID传递给我,而我必须将此用户提供给该ID的所有孩子。我决定这样做的方法是查看另一个链接的第一个答案。

Laravel query builder for recursive results? E.g. id, parent_id

但是我的问题有些困难。我没有像以下链接状态那样直接进行建模的模型。基本上,看看我有什么。

\DB::table("service_transport_type")->
                join("transport_types", "transport_types.id", '=', "service_transport_type.transport_type_id")->
                join("translations", "transport_types.name",'=', 'translations.id')
                ->join('translation_entries', 'translations.id', '=', 'translation_entries.translation_id')
                ->join('languages', 'translation_entries.language_id', '=', 'languages.id')
                ->whereIn('languages.code', ['eng'])
                ->where('service_transport_type.service_id', $id)
                ->orderBy('transport_types.parent_id')

                ->get([
                        'transport_types.id',
                        'transport_types.parent_id',
                        'translation_entries.value'
                    ])

现在,如果您查看查询,我的第一个连接就是transport_types。加入后,我得到具有某些特定service_id的transport_type。之后,如果我具有transport_type,则需要它的所有子级。由于我没有模型难题,而我正在使用联接,我该怎么办?很难解释,但是如果您没有得到任何东西,请告诉我。

0 个答案:

没有答案