首页 > 解决方案 > 如何在 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);
}

当我访问route时,返回以下错误:

在此处输入图像描述

简而言之:我想知道是否有办法获取与用户关联的所有数据(来自此分层树中的所有表)。

我在 Stackoverflow PT-BR 上找不到答案。

谢谢!

标签: laravel

解决方案


推荐阅读