如何在 Laravel 5.1 中缓存计数函数

how to cache count function in Laravel 5.1

我想缓存我的 acqusition 模型的计数函数。

我确实有1 800 000个资产,我不想每次都数这个。

我不想在我使用的每个控制器中都这样做:

$count = ( ! Cache::has('count_acquisition')) ? Cache::put('count_acquisition', Acquisition::count(), 60) : Cache::get('count_acquisition');

它很重,我更愿意直接在我的采集模型中这样做,但我不知道怎么做。

在您的 Acquisition 模型中创建静态 count 方法:

public static function count()
{
    return Cache::remember('count_acquisition', 60, function () {
        return static::query()->count();
    });
}

然后在你的控制器中,简单地调用这个方法:

$count = Acquisition::count();