У меня есть модель с именем Tournament
, где каждый Tournament
кэшируется с некоторыми из его отношений, используя ключ для каждой модели (т.е. tournament.1
).
return \Cache::remember('tournament.' . $id, 60*24*7, function() use ($id) {
return Tournament::where('id', $id)
->with(['prizes', 'sponsor'])
->firstOrFail();
});
Когда я обновляю отношения, я бы хотел забыть ключ этого турнира. Я знаю, что мог бы использовать событие как это:
public static function boot()
{
static::saving(function ($prize) {
\Cache::forget('tournament.' . $prize->tournament->id);
});
return parent::boot();
}
Однако, делая это, я должен повторить этот код и для всех других отношений. Я мог бы создать для этого черту, но есть ли лучший способ сделать то, чего я хочу достичь?