РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
338 of 1392 menu

Событие restored

Событие restored относится к модели Eloquent и вызывается после того, как модель была успешно восстановлена методом restore. Для использования этого события модель должна применять трейт SoftDeletes. Событие позволяет выполнить дополнительные операции, например, обновить связанные данные, отправить уведомления или очистить кеш. Событие restored автоматически вызывается при восстановлении модели.

Синтаксис

<?php use AppModelsArticle; Article::restored(function ($article) { // Actions after restore }); ?>

Событие можно зарегистрировать в методе booted модели или в сервис-провайдере.

Пример

Зарегистрируем событие restored в модели Article, которое будет обновлять поле 'restored_at' при восстановлении:

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; use IlluminateDatabaseEloquentSoftDeletes; class Article extends Model { use SoftDeletes; protected $fillable = [ 'title', 'content', 'deleted_at', 'restored_at' ]; protected static function booted() { static::restored(function ($article) { $article->restored_at = now(); $article->save(); }); } } ?>

Пример

Используем событие restored для отправки уведомления администратору о восстановлении статьи:

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; use IlluminateDatabaseEloquentSoftDeletes; use AppNotificationsArticleRestored; class Article extends Model { use SoftDeletes; protected $fillable = [ 'title', 'content', 'deleted_at' ]; protected static function booted() { static::restored(function ($article) { $article->notify(new ArticleRestored($article)); }); } } ?>

Пример

Зарегистрируем событие в сервис-провайдере для очистки кеша после восстановления записи:

<?php namespace AppProviders; use IlluminateFoundationSupportProvidersEventServiceProvider; use AppModelsArticle; class EventServiceProvider extends EventServiceProvider { public function boot() { Article::restored(function ($article) { cache()->forget('article_' . $article->id); cache()->forget('articles_list'); }); } } ?>

Пример

Пример использования события в контроллере при восстановлении нескольких моделей:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; use IlluminateHttpJsonResponse; class ArticleController extends Controller { public function restore(Request $request, $id): JsonResponse { $article = Article::onlyTrashed()->findOrFail($id); $article->restore(); return response()->json([ 'message' => 'Article restored successfully', 'article' => $article ]); } } ?>

Смотрите также

  • событие restoring,
    которое вызывается перед восстановлением модели
  • событие deleted,
    которое вызывается после удаления модели
  • событие updating,
    которое вызывается перед обновлением модели
  • событие updated,
    которое вызывается после обновления модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить