我想知道如何在多对多关系中查询数据透视表中的字段。
让我们假设我们有这种关系:
public function acciones(){
return $this->belongsToMany('App\Accion', 'inter_clientes_acciones', 'id_cliente', 'id_accion')->withPivot('valoracion', 'asistencia');
}
public function clientes(){
return $this->belongsToMany('App\Cliente', 'inter_clientes_acciones', 'id_accion', 'id_cliente')->withPivot('valoracion', 'asistencia');
}
我必须得到的是具有布尔字段asistencia
值为true的客户端数量。
我试过做类似的事情:
$clients = Cliente::findOrFail($id);
$number = $clients->acciones()->pivot->where('asistencia','=', true)->count();
但我有一个错误。明显。
有没有雄辩的方法来获得这个计数?
答案 0 :(得分:1)
你可以试试这个。
$number = Cliente::whereHas('acciones', function($q) {
$q->where('asistencia', '=', true);
})->count();