laravel - 如何在 Laravel 的关系树中搜索所有关联?
问题描述
我有问题。我有相关的表格:
internal_clients->subsidiaries->departments->job_titles->users
我也有他们各自的型号。
我的疑问是:
如何从树的顶部 (internal_clients) 获取与用户关联的所有数据?
我正在尝试使用 hasManyThrough 来遵循 Laravel 文档。
但是,在文档中,它仅解释了如何在三个表的链中执行此操作。他们教如何放置一个中间表(模型)作为 hasManyThrough 方法的第二个参数(BaseClasse::class, IntermediaryClass::class)。
但是,在我的情况下,用户和 internal_clients 之间有几个表,我该怎么做?中间表是什么?
我想做一个查询,返回用户的 internal_client、subsistant、department 和 jobTitle(与用户关联)。
我正在尝试这样做:
模型内部客户端
public function users()
{
return $this->hasManyThrough(User::class, InternalClient::class);
}
控制器用户控制器
public function allRelations($internalClientId)
{
$internalClient = InternalClient::find($internalClientId);
$users = $internalClient->users;
return response()->json($users, 201);
}
- InternalClient id 到达上面的控制器。
当我访问route时,返回以下错误:
简而言之:我想知道是否有办法获取与用户关联的所有数据(来自此分层树中的所有表)。
我在 Stackoverflow PT-BR 上找不到答案。
谢谢!
解决方案
推荐阅读
- arrays - 将公式转换为数组 google Sheet
- intellij-idea - 运行 Ubuntu 20.04 (IntelliJ) 的 Thinkpad 笔记本电脑上的 Ctrl+/ 快捷键?
- binary-search - 何时使用 lo <= hi 与 lo < hi 进行二分搜索?
- arrays - 批量检索变量位置的数组值时出现意外行为
- javascript - useState,与 contexAPI 反应钩子
- vue.js - 检查 VTextField 的验证
- marklogic - 在marklogic中将来自两个不同服务器的相同数据库组合到第三个服务器
- javascript - 为什么控制台说不能设置null的属性
- javascript - 如何停止递归函数?
- python - 如何使用单个命令使所有 Voluptuous 字段都需要?