php - Laravel 5.1 - 选择具有多对多关系的多个枢轴的所有模型

标签 php mysql laravel-5.1

我有 2 个模型,客户端操作,具有多对多关系。在数据透视表“inter_clients_actions”中,我有客户操作之间的关联,以及一个名为参加的 bool 字段。

模型客户:

public function actions(){
      return $this->belongsToMany('App\Action', 'inter_clients_actions', 'id_client', 'id_action')->withPivot('attended');
    }

行动模型:

public function clients(){
    return $this->belongsToMany('App\Client', 'inter_clients_actions', 'id_action', 'id_client')->withPivot('attended');
  }

inter_clients_actions 数据透视表:

id_client
id_action
attended

现在我必须获取每个客户端以及参与的操作数,以选择没有操作的客户端和少于 5 次操作的客户端。

我知道我可以使用以下命令选择具有参与操作的客户端:

$aux_clients = Client::whereHas('actions', function($query){
    $query->where('attended', true);
});

但它没有给我任何操作。有没有获取参与 Action 数量的命令?

提前致谢。

最佳答案

这就是技巧:

$aux_clients = Client::whereHas('actions', function($query){
    $query->where('attended', true);
}, '<', 5);

您请求 < 5,因此“不包括任何操作”。

关于php - Laravel 5.1 - 选择具有多对多关系的多个枢轴的所有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743730/

相关文章:

laravel - 带有连接的 yajra DataTable 在 laravel 5 中不起作用?

javascript - 在以下场景中如何访问 json 数据并在 if 条件中使用?

mysql - 我需要将自动修复设置为 mysql 表

PHPUnit:模拟 Symfony2 FormBuilderInterface - 类型提示问题

mysql - 关于对偶尔缺失值不同的相似行进行分组的难题

mysql - 有问题的 mysql 查询如何按多个 ID 进行过滤

laravel - 测试 Laravel-Excel 下载

mysql - 迁移中的条件语句不起作用 Laravel

javascript - Windows 10 本地主机请求 ECONNREFUSED

php - 除了左连接和联合mysql查询之外,从两个表中选择最新条目