withCount() 用于多个级别?

withCount() for multiple levels?

你可以做到 Project::with('events.contacts') 你也可以做到 Project::withCount('events.contacts') 吗?它似乎不起作用。是否有另一种方法可以找到某个项目的所有事件的联系人总数,其中 project.id = event.project_id 和 event.id = contact.event_id

您可以使用关系有很多通过

Docs: https://laravel.com/docs/8.x/eloquent-relationships#has-many-through

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Project extends Model
{
    public function contacts()
    {
        return $this->hasManyThrough(Contact::class, Event::class);
    }
}

那你可以做

Project::withCount('contacts')->get();