如何计算多个关系中的行数。
数据库设置如下:
用户: USER_ID
文件: ID, 名称
用户: ID, 的file_id
我希望获得属于特定用户的每个文件的集体TOTAL访问者数量。
我目前的代码是:
$visitors = Auth::user()->files()->with('Visitors')->get();
$visitors = $visitors->count('visitor.id');
但这仅返回文件总数,而不是访问者总数。
答案 0 :(得分:3)
由于你有级联关系:
User hasMany File hasMany Visitor
使用User
- Visitor
关系的最简单方法是hasManyThrough
:
// User model
public function visitors()
{
return $this->hasManyThrough('Visitor', 'File');
}
然后,您需要获取用户的所有文件访问者'数是:
$user->visitors()->count();