Laravel计数行数有很多关系

时间:2014-08-30 13:46:17

标签: php mysql laravel laravel-4 eloquent

如何计算多个关系中的行数。

数据库设置如下:

用户: USER_ID

文件: ID, 名称

用户: ID, 的file_id

我希望获得属于特定用户的每个文件的集体TOTAL访问者数量。

我目前的代码是:

    $visitors = Auth::user()->files()->with('Visitors')->get();
    $visitors = $visitors->count('visitor.id');

但这仅返回文件总数,而不是访问者总数。

1 个答案:

答案 0 :(得分:3)

由于你有级联关系:

User hasMany File hasMany Visitor

使用User - Visitor关系的最简单方法是hasManyThrough

// User model
public function visitors()
{
  return $this->hasManyThrough('Visitor', 'File');
}

然后,您需要获取用户的所有文件访问者'数是:

$user->visitors()->count();