我如何计算有很多关系中的行数。
例如数据库是这样设置的:
users:
user_id
files:
id,
name
visitors:
id,
file_id
我想获取属于特定用户的每个文件的访问者总数。
我目前的代码是这样的:
$visitors = Auth::user()->files()->with('Visitors')->get();
$visitors = $visitors->count('visitor.id');
但这只返回文件总数,而不是访问者总数。
最佳答案
因为你有级联关系:
User hasMany File hasMany Visitor
使用 User
- Visitor
关系的最简单方法是 hasManyThrough
:
// User model
public function visitors()
{
return $this->hasManyThrough('Visitor', 'File');
}
那么您需要获取用户所有文件访问者的计数是:
$user->visitors()->count();
关于php - Laravel 计数中的行数有很多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583014/