我想知道如何在多对多关系中查询透视表中的字段。
假设我们有这种关系:

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();

但我犯了个错误。很明显。
有没有一种雄辩的方法来计算这个数??

最佳答案

你可以试试这个。

$number = Cliente::whereHas('acciones', function($q) {
               $q->where('asistencia', '=', true);
          })->count();

关于php - Laravel 5.1-使用Eloquent查询数据透视表的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35199849/

10-11 05:20