首页 > 解决方案 > Laravel 计数 > N

问题描述

我的应用中有 2 个模型:

1.客户.php

2.汽车.php

现在我想运行一个查询,返回所有汽车少于 2 辆的客户。其中 2 是用户可以更改的数字。

我试过了,但没有用,它只是返回所有客户记录:

$customers = Customer::whereHas("cars", function($query) {
    $query->selectRaw("count(*) < ?", [2]);
})
->get();

编辑: 这两个模型链接在一个数据透视表中,这意味着一个客户可以拥有超过 1 辆汽车,而一辆汽车可以属于超过 1 个客户。

标签: laraveleloquentlaravel-5.6

解决方案


用这个:

$customers = Customer::withCount('cars')
    ->having('cars_count', '<', 2)
    ->get();

推荐阅读