雄辩中的启动方法简介
在Laravel雄辩的ORM中,当实例化雄辩模型时,将调用引导方法。此方法提供了一个方便的地方注册事件听众或执行其他设置任务。
通过使用引导方法,您可以保持模型逻辑组织且易于维护。在这篇文章中,我们将探讨如何使用启动方法在创建或更新模型时侦听CRUD事件并重置缓存。
让我们使用示例理解它:
假设您有一个带有User
model的Laravel应用程序,该应用程序经常被访问和更新。为了加快查询并减少数据库加载,您决定使用Laravel的CacheFaã§ade来缓存用户数据。
要缓存用户数据,您需要使用唯一的缓存键存储它。您可以将用户的ID用作缓存键,但是当用户数据更改时会发生什么?每次更新用户时,您都需要更新缓存密钥,以确保缓存不是陈旧的。
要自动化此过程,您可以使用启动方法来侦听updating
events上的updating
events,并为创建或更新的用户重置cache
。
注册活动听众
要收听CRUD事件,您可以使用creating
,created
,updating
,updated
,updated
,saving
,saving
,saved
,deleting
,deleting
和deleted
方法在模型的静态启动方法上进行注册。
在此示例中,我们将使用creating
and updating
事件来重置正在创建或更新的用户的缓存。
这是您可以在用户模型的引导方法中定义事件侦听器的方法:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
class User extends Model
{
protected static function booted()
{
static::creating(function ($user) {
Cache::forget('user_' . $user->id);
});
static::updating(function ($user) {
Cache::forget('user_' . $user->id);
});
}
}
重置缓存
要重置模型的缓存,您可以使用Laravel的缓存立面。缓存外观提供了一个简单的API,用于从各种缓存后端存储和检索数据。
例如,要通过其ID缓存用户模型,您可以使用CacheFaã§ade的记忆方法:
$userId = 1;
$user = Cache::remember('user_' . $userId, $minutes, function () use ($userId) {
return User::find($userId);
});
在上面的代码中,记住方法在指定的分钟数中使用ID 1的用户模型缓存。如果尚未设置缓存,请记住通过的闭合来检索数据并缓存。
为用户创建或更新用户的重置缓存,我们使用忘记方法
结论
在这篇文章中,我们探索了如何在雄辩模型中使用启动方法来聆听CRUD事件并在创建或更新模型时重置缓存。通过使用事件侦听器和缓存faã§ade,您可以保持模型逻辑且易于维护。