Minhas tabelas (e relações de modelos Laravel):
projects -> tasks -> commands
Calcular contagem de tarefas:
$body = Project->withCount('tasks')->get();
Multar.
Então eu quero calcular a contagem de comandos para todas as tarefas. O equivalente em SQL é:
select
count(commands.*)
from projects
inner join tasks on tasks.project_id = projects.id
inner join commands on commands.task_id = tasks.id
Como obtê-lo pelo Eloquent? Por algumas razões, o Query Builder não é aceitável.
Infelizmente, witchCount
não é tão flexível with
e não posso usá-lo.withCount('tasks.commands')
Você pode adicionar o
Task
relacionamento aoProject
modelo e oCommand
relacionamento por meio deleTask
também.Depois disso, você pode consultar ambos usando
withCount
.