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

Метод refresh

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

Синтаксис

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

Пример

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

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $article = Article::find(1); echo $article->title; $article->title = 'New title'; echo $article->title; $article->refresh(); echo $article->title; } } ?>

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

"Article 1" "New title" "Article 1"

В этом примере после вызова refresh модель загрузила исходное название из базы данных, отменив локальное изменение.

Пример

Давайте покажем, как refresh работает при изменении записи в базе данных другим процессом:

<?php namespace AppHttpControllers; use AppModelsArticle; use AppModelsUser; class ArticleController extends Controller { public function index() { $article = Article::find(2); echo $article->views; $user = User::find(1); $user->articles()->increment('views'); $article->refresh(); echo $article->views; } } ?>

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

"10" "11"

Здесь после обновления количества просмотров через связь, вызов refresh загрузил актуальное значение из БД.

Пример

Используем refresh после сохранения модели для получения всех изменённых значений, включая автоматически вычисляемые поля:

<?php namespace AppHttpControllers; use AppModelsArticle; class ArticleController extends Controller { public function index() { $article = Article::find(3); echo $article->updated_at; sleep(2); $article->title = 'Updated title'; $article->save(); $article->refresh(); echo $article->updated_at; } } ?>

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

"2026-09-07 10:30:15" "2026-09-07 10:30:17"

После сохранения модели автоматически обновляются временные метки. Вызов refresh загружает эти новые значения из базы данных.

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

  • метод fresh,
    который возвращает новую модель из базы данных
  • метод save,
    который сохраняет текущую модель в базу данных
  • метод update,
    который обновляет модель и сразу сохраняет изменения
  • метод replicate,
    который создаёт копию модели без сохранения в БД
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить