CakePHP 3 - Как сопоставить косвенные ассоциации?

Итак, мои модели работают так:

  • User есть один Investor
  • Investor имеет много Investments
  • Investments имеет много Bids
  • Bids принадлежит ObjectInAuction
  • ObjectInAuction имеет много Bids

Мне нужно построить функцию в ObjectInAuction, которая возвращает все сущности ObjectInAuction, которые были вложены User с некоторыми $user_id.

Вот что у меня есть в ObjectsInAuctionTable.php:

public function getAuctionObjectsInvestedBy($user_id)
{
    $query = $this->find();
    $query->contain([
        'Bids.Investments.Investors' => function ($q) use ($user_id) {
             return $q->where(['Investors.user_id' => $user_id]);
         }
    ]);
}
$invoices = $query->all();

Проблема в том, что это каждый раз возвращает все счета в базе данных. Как я могу заставить это работать?


person Alejandro    schedule 14.12.2014    source источник
comment
Спасибо, это дубликат   -  person Alejandro    schedule 14.12.2014