我遇到了这个库https://github.com/GeneaLabs/laravel-model-caching,并试图在我的项目中使用它。
首先,我在.env
中添加了以下行:
MODEL_CACHE_STORE=file
我正在使用文件缓存存储进行测试,在生产中,我将使用redis。
然后我用以下内容创建了app/CacheableModel.php
:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
abstract class CacheableModel extends Model
{
use Cachable;
}
然后像这样的示例更新了所有模型(app/User.php
除外)
<?php
namespace App;
class Company extends CacheableModel
{
...
}
我用这样的测试路线对其进行了测试:
Route::get('test', function() {
$testUser = \App\User::where('email', 'test@domain.com')
->with('company.users', 'company.subscription')
->first();
dump($testUser->toArray());
});
当我访问测试路线时,可以看到加载和转储的数据。如果刷新页面,则似乎没有在缓存上述查询。
通过查看查询日志(使用laravel望远镜)以及查看storage/framework/cache/data
-它是空的,我证实它没有缓存我的雄辩查询。
任何想法可能有什么问题吗?
这不是因为app/User.php
模型不使用CacheableModel
基类并且测试查询从用户模型开始而进行缓存吗?