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

Метод getChanges

Метод getChanges применяется к экземпляру модели Eloquent и возвращает массив изменённых атрибутов с их новыми значениями. В отличие от метода getDirty, который показывает только те поля, которые были изменены, но ещё не сохранены, getChanges возвращает изменения, которые уже были применены к модели после вызова метода save. Если модель не была сохранена после изменения, метод вернёт пустой массив. Метод полезен для отслеживания истории изменений, отправки уведомлений или аудита данных.

Синтаксис

<?php $model->getChanges(); ?>

Пример

Давайте получим изменения модели после сохранения:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $article = Article::find(1); $article->title = 'New article title'; $article->save(); $changes = $article->getChanges(); foreach ($changes as $key => $value) { echo $key . ': ' . $value; } } } ?>

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

"title: New article title" "updated_at: 2026-09-07 10:15:30"

Пример

Метод getChanges возвращает только те поля, которые были изменены. Если поле было изменено, но его новое значение совпадает со старым, оно не будет включено в результат:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $article = Article::find(2); // Изменяем поле $article->status = 'draft'; $article->save(); $changes = $article->getChanges(); if (empty($changes)) { echo 'No changes'; } else { foreach ($changes as $key => $value) { echo $key . ': ' . $value; } } } } ?>

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

"status: draft" "updated_at: 2026-09-07 10:20:15"

Пример

Метод getChanges работает только после сохранения модели. Если изменения не были сохранены, метод вернёт пустой массив:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $article = Article::find(3); $article->content = 'New content text'; // Изменения ещё не сохранены $changes = $article->getChanges(); if (empty($changes)) { echo 'Changes not saved yet'; } else { foreach ($changes as $key => $value) { echo $key . ': ' . $value; } } // Сохраняем изменения $article->save(); $changesAfterSave = $article->getChanges(); echo 'Changes after save: '; foreach ($changesAfterSave as $key => $value) { echo $key . ': ' . $value; } } } ?>

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

"Changes not saved yet" "Changes after save: content: New content textupdated_at: 2026-09-07 10:25:00"

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

  • метод getDirty,
    который возвращает изменённые атрибуты до сохранения
  • метод isDirty,
    который проверяет, были ли изменены атрибуты
  • метод wasChanged,
    который проверяет, были ли атрибуты изменены во время последнего сохранения
  • метод getOriginal,
    который возвращает оригинальные значения атрибутов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить