如何在Eloquent中建立关系,以计算哪些用户下载了哪些

时间:2015-08-29 18:02:09

标签: database laravel eloquent relational-database

我想将链接数据透视表与用户链接到文件模型,并计算下载量,以了解哪个用户下载了哪些文件。

问题是我不知道如何在Eloquent的关系层面上做到这一点 - 它应该是什么样子,当我想问Laravel时,哪些文件是由用户下载的ID。 5,例如。

请告诉我它们中的模型和关系应该如何?我怎样才能让Eloquent找出下载次数(以及下载特定文件的用户列表)。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要下载表格(id,user_id,file_id)和模块,列出所有下载内容。

的download.php

error: C2259: 'MyTextureImage' : cannot instantiate abstract class
due to following members:
'Qt3D::QNode *Qt3D::QNode::doClone(void) const' : is abstract

比控制器使用它:

<?php
class Download extends Eloquent
{
    protected $table = 'downloads';

    public function user()
    {
        return $this->belongsTo('User', 'user_id');
    }

    public function file()
    {
        return $this->belongsTo('File', 'file_id');
    }
}

从用户那里获取下载文件

user.php的

$downloads = Download::all();
$list = [];

foreach($downloads as $download)
{
$list[$download->id]['download'] = $download;
$list[$download->id]['user'] = $download->user;
$list[$download->id]['file'] = $download->file;
}

在控制器中

<?php
    class User extends Eloquent
    {
        protected $table = 'users';

        public function downloads()
        {
            return $this->hasMany('Download', 'user_id', 'id');
        }
    }

文件相同