Метод restore
Метод restore применяется к модели Eloquent
или к построителю запросов и восстанавливает записи,
которые были помечены как удалённые через механизм
мягкого удаления. Для работы этого метода в модели
должен быть использован трейт SoftDeletes,
который добавляет поле 'deleted_at' в таблицу.
Метод возвращает количество восстановленных записей
при использовании через построитель запросов,
или true/false при вызове на конкретном
экземпляре модели.
Синтаксис
<?php
Model::withTrashed()->where($column, $operator, $value)->restore();
?>
Для восстановления одного экземпляра модели используется следующий синтаксис:
<?php
$model = Model::withTrashed()->find($id);
$model->restore();
?>
Пример
Допустим, у нас есть модель Article с мягким удалением.
Восстановим все удалённые статьи, у которых поле 'status'
равно 'archived':
<?php
use AppModelsArticle;
$res = Article::onlyTrashed()
->where('status', 'archived')
->restore();
echo "Restored articles: " . $res;
?>
Результат выполнения кода:
"Restored articles: 3"
Пример
Восстановим конкретную удалённую статью по её идентификатору:
<?php
use AppModelsArticle;
$article = Article::withTrashed()->find(5);
if ($article) {
$res = $article->restore();
echo "Article restored: " . $res;
}
?>
Результат выполнения кода:
"Article restored: 1"
Пример
Восстановим все удалённые статьи, у которых поле 'views'
больше 100:
<?php
use AppModelsArticle;
$res = Article::onlyTrashed()
->where('views', '>', 100)
->restore();
echo "Restored articles: " . $res;
?>
Результат выполнения кода:
"Restored articles: 2"
Смотрите также
-
метод
trashed,
который проверяет, удалена ли запись мягко -
метод
forceDelete,
который окончательно удаляет запись из базы данных -
метод
withTrashed,
который включает удалённые записи в результаты запроса -
метод
onlyTrashed,
который выбирает только мягко удалённые записи