【问题标题】:laravel mutator increment number when we get the record当我们获得记录时,laravel mutator 递增数
【发布时间】:2017-12-09 20:44:20
【问题描述】:

我有一个名为 Alsolike 的模型,我想当我们从数据库中获取数据时,我想增加查看次数,知道查看记录的次数,这是我尝试做的,如果有好的方法,建议

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Alsolike extends Model
{
    public function getMealidAttribute($value)
    {
        $user = App\Alsolike::first()->increment('view');;
        $user->save();
    }
}

【问题讨论】:

  • 你的方法看起来不错。但是当谈到网站统计时,我会推荐另一种工具,如 Goolge Analitics。
  • 我的项目经理,他不想要谷歌分析
  • 所以我会这样:在构造函数中将此页面控制器中的视图数量增加。然后每次显示页面时,构造函数都会执行此操作。也许是这样?
  • 你可能想看看这个:github.com/antonioribeiro/tracker 但是你想要这种方法:mutator 应该遵循setFooAttribute 你的意思是accessor?在这种情况下,不要忘记返回属性本身!
  • 你的意思是 return $value public function getMealidAttribute($value) { $user = App\Alsolike::first()->increment('view');; $用户->保存();返回$值; } }

标签: laravel eloquent


【解决方案1】:

...如果有好的[方法],建议...

我认为middleware 方法更适合您的场景。创建一个中间件,例如 IncrementViews,每次访问路由时都会增加 AlsoLike 模型的视图数量。

您可能还想限制或过滤您的视图将如何增加,也许尝试创建一个表来保存您的用户的ip addresses,然后检查相同的ip address 是否已经访问了该页面的次数分钟。

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2012-03-19
    • 2021-08-25
    • 1970-01-01
    • 2016-10-18
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多