Метод saveQuietly
Метод saveQuietly применяется к экземпляру модели Eloquent
и сохраняет её в базу данных без запуска событий
saving, saved, creating, created,
updating и updated. Метод возвращает
логическое значение - успешность сохранения.
Синтаксис
<?php
$model->saveQuietly();
?>
Пример
Давайте создадим новую статью и сохраним её без событий:
<?php
use AppModelsArticle;
$article = new Article();
$article->title = 'article';
$article->text = 'content';
$article->integer = 25;
$res = $article->saveQuietly();
echo "Save result: " . ($res ? 'true' : 'false');
echo "Article ID: " . $article->id;
?>
Результат выполнения кода:
"Save result: true"
"Article ID: 1"
Пример
Обновим существующую запись без триггеров событий:
<?php
use AppModelsArticle;
$article = Article::find(1);
$article->text = 'new content';
$res = $article->saveQuietly();
echo "Update result: " . ($res ? 'true' : 'false');
?>
Результат выполнения кода:
"Update result: true"
Пример
Сравним поведение обычного save и saveQuietly:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
protected static function booted()
{
static::saving(function ($model) {
echo "Event saving is triggered";
});
static::created(function ($model) {
echo "Event created is triggered";
});
}
}
?>
<?php
use AppModelsArticle;
$article = new Article();
$article->title = 'article';
$article->text = 'content';
echo "--- Using saveQuietly ---";
$article->saveQuietly();
echo "--- Using save ---";
$article->save();
?>
Результат выполнения кода:
"--- Using saveQuietly ---"
"--- Using save ---"
"Event saving is triggered"
"Event created is triggered"
Смотрите также
-
метод
save,
который сохраняет модель с запуском событий -
метод
deleteQuietly,
который удаляет модель без событий -
метод
update,
который обновляет модель с запуском событий -
метод
withoutEvents,
который выполняет код без событий модели