如何在 Laravel 中访问下拉关系

问题描述 投票:0回答:1

型号:

  • 用户

    • boards():HasMany
  • 董事会

    • lists():HasMany
  • 列表

    • 任务():有很多
  • 任务


表格:

董事会:

  • id
  • 用户ID

列表:

  • id
  • board_id

任务:

  • id
  • 列表_id

我想如何搜索带有 ID 的任务,但又不想在 USER 中创建关系? 我可以在 USER 中创建一个名为tasks()的关系,但我不想以这种方式执行此操作。我想要,例如:

$user = User::find(10);
$task = $user->boards()->lists()->tasks()->find($id);

请注意,任务和列表表没有 user_id 字段,只有 board 表

我尝试:$task = $user->boards()->lists()->tasks()->find($id);

laravel relationship has-many-through has-many
1个回答
1
投票

走另一条路,从你想要得到的开始。

$userId = 10;
$tast = Task::query()
    ->whereHas('list', function($list) use ($userId) {
        $list->whereHas('board', function($board) use ($userId) {
            $board->where('user_id', $userId);
        });
    })
    ->find($id);
© www.soinside.com 2019 - 2024. All rights reserved.