php - withCount() 用于多个级别?
问题描述
像你能做的Project::with('events.contacts')
你也能做Project::withCount('events.contacts')
吗?它似乎不起作用。是否有另一种方法可以找到某个项目的所有事件的联系人总数,其中 project.id = event.project_id 和 event.id = contact.event_id
解决方案
您可以使用关系Has Many Through
文档: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();
推荐阅读
- bash - 如何在 for 条件下使用 2 个变量?
- django - 如何从 django 中的视图更改模型字段值
- google-analytics - 请求第三方访问 Google Analytics
- windows - 通过 sshd 在 Windows 中使用 git - 卡在推送中
- vue.js - 如何获取元素的索引并从 Vue Js 中的模板返回它?
- python - 如何在 pymongo 中使用 fsyncLock() 和 fsyncUnlock() 来锁定并发写入操作
- flutter - Stack 中小部件的颜色总是略微透明
- c# - 如何使用 zenject 在 Unity3d 中将 MonoBehaviour 类注入到非 Monobehaviour?
- c# - 如何不打开另一个表单只是按下一个按钮,比如按下按钮 ALARM
- node.js - 如何过滤get api请求