我有 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/