php - Laravel 计数中的行数有很多关系

标签 php mysql laravel laravel-4 eloquent

我如何计算有很多关系中的行数。

例如数据库是这样设置的:

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/

相关文章:

php - 我们可以在 phonegap 上为 ipad 应用程序使用 opencart 或 zen cart 吗

javascript - Google map JavaScript API 警告 : NoApiKeys

Mysql 嵌套左连接与计数

php - 在 Laravel 中安全地编辑第三方 Composer (供应商)包并防止在发布新版本包时丢失自定义更改

php - 拉维尔 8 : Weird missing required parameter

PHP 报告在 copy() 时失败,但文件实际上已被复制

php - 在 php 中为长时间运行的进程创建后台进程

mysql - 为什么 MySQL 不喜欢用户 'a' @'b' 当我刚从 mysql.user 中删除它们时?

php - undefined variable 错误

laravel - 安装简单的二维码后, Blade 引擎无法在 laravel 5 上运行