私は、ネストされた関係を照会し、結果を返すためにLaravel雄弁構文を知っておく必要があります

シェーンPoppleton:

私は、次のモデルを持っています

  • 会社
  • 連絡先
  • チケット
  • ジョブ
  • ユーザー

ジョブbelongsToのチケット、チケットbelongsToの連絡先またはユーザー(多形)が、連絡先は当社に帰属します。私が持つ特定の会社のためのすべてのジョブを取得することができます

Company::with('contacts.tickets.jobs')->where('id', 10)->get();

私は特定の会社のために、システム内のすべてのジョブのリストが欲しいです。それはすべてのジョブを返して、私は次のことを試してみましたが、それは働いていません

Job::with(['ticket' => fn($b) => $b->whereHasMorph('creator', [App\Contact::class],fn($b) => $b->where('company_id', 10))])->get();
ジャックステラ:
$companyId = 6;

Job::whereHas('ticket', fn($b) => 
    $b->whereHasMorph('creator', [App\Contact::class], fn($c) => 
        $c->where('company_id', $companyId)
    )
   )->with(['ticket.creator.company'])->get();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14684&siteId=1