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

Метод withoutEvents

Метод withoutEvents применяется к экземпляру модели Eloquent и позволяет временно отключить все события для последующих операций. Метод принимает замыкание, внутри которого выполняются операции без генерации событий модели. Это полезно при массовых обновлениях, импорте данных или в ситуациях, когда события могут вызвать нежелательные побочные эффекты.

Синтаксис

<?php $model->withoutEvents(function () { // Operations without events }); ?>

Пример

Давайте обновим все статьи, установив им статус 'archived', без запуска событий updating и updated:

<?php use AppModelsArticle; $article = Article::find(1); $article->withoutEvents(function () use ($article) { $article->update(['status' => 'archived']); }); echo $article->status; ?>

Результат выполнения кода:

"archived"

Пример

Давайте выполним несколько операций внутри одного замыкания, отключив события для всех изменений:

<?php use AppModelsArticle; $article = Article::find(2); $result = $article->withoutEvents(function () use ($article) { $article->title = 'Updated title'; $article->status = 'draft'; $article->save(); return 'Operations completed without events'; }); echo $result; ?>

Результат выполнения кода:

"Operations completed without events"

Пример

Давайте создадим новую статью без запуска событий creating и created:

<?php use AppModelsArticle; $article = new Article(); $article->title = 'New article'; $article->status = 'pending'; $article->withoutEvents(function () use ($article) { $article->save(); }); echo "Article created with ID: " . $article->id; ?>

Результат выполнения кода:

"Article created with ID: 5"

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

  • метод saveQuietly,
    который сохраняет модель без запуска событий
  • метод deleteQuietly,
    который удаляет модель без запуска событий
  • метод withoutTimestamps,
    который отключает автоматическое обновление временных меток
  • метод update,
    который обновляет модель в базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить