如何跟踪Laravel 4中的用户下载?

时间:2014-12-11 03:48:54

标签: php laravel laravel-4

我使用Laravel 4。

我的视图中有一个下载按钮。

我有很多users可以从该按钮下载see/click

这是我的问题,

有没有办法跟踪how many我的文件下载时间whom

让我们说,

  • 用户A下载27次
  • 用户B下载5次
  • 用户C永远不会下载
  • 用户D下载200次

等等......

我的控制器功能

public function file_download($id)
    {

        $catalog_download = CatalogDownload::findOrFail($id);
        $distributor      = Auth::user()->distributor()->first();
        $export_type      = $distributor->export_type()->first();
        $product_export =  $catalog_download->product_exports()->first();

        $destinationPath  = base_path().'/app/files/product_export/'. $catalog_download->id.'/'. $export_type->id.'/';
        $file_name        = $product_export->file_path;
        $pathToFile       = $destinationPath .$file_name;

        return Response::download($pathToFile);
    }

3 个答案:

答案 0 :(得分:1)

在您的数据库中

您应该创建另一个属性。我们称之为download_count

  • 整数
  • 将默认设置为0

在您的控制器功能中,最后,只需执行。

  • $ user-> download_count = $ user-> download_count +1;
  • $用户>保存();

每次,用户试图下载......他们都需要通过该功能 - 对吗?

只要increment(+ 1)它,每次都会经历它。我希望我足够清楚。祝你好运:)

答案 1 :(得分:0)

只需将用户名和下载文件名称的ajax调用作为Ajax调用的数据添加到按钮,并且每按一下按钮就可以安全地访问数据库。然后,您只需查询文件和用户组合,即可获得下载次数。

其他方法是将保存功能添加到控制器并通过控制器保存上述组合

答案 2 :(得分:0)

我能想到的唯一选择是将其存储在数据库中。

用户点击下载按钮后,在数据库中添加+1。

相关问题