Атрибут timestamps
Атрибут timestamps определяет, будет ли Eloquent автоматически обновлять поля created_at и updated_at при создании и обновлении модели. По умолчанию значение атрибута равно true. Если установить false, автообновление меток времени будет отключено. Это полезно для таблиц, которые не содержат стандартных полей с метками времени.
Синтаксис
<?php
class Model extends Model
{
public $timestamps = false;
}
?>
Пример
Давайте создадим модель, у которой отключены временные метки:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
public $timestamps = false;
}
?>
Теперь при создании записи поля created_at и updated_at не будут заполняться автоматически.
Пример
Создадим новую статью без автоматических меток времени:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function store()
{
$article = new Article();
$article->title = 'article 1';
$article->content = 'text 1';
$article->save();
$res = $article->toArray();
print_r($res);
}
}
?>
Результат выполнения кода:
[
"id" => 1,
"title" => "article 1",
"content" => "text 1"
]
Пример
Включим временные метки для модели, указав timestamps равным true (или просто опустив эту строку, так как значение по умолчанию - true):
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
public $timestamps = true;
}
?>
Теперь при сохранении модели поля created_at и updated_at будут автоматически заполнены:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function store()
{
$article = new Article();
$article->title = 'article 2';
$article->content = 'text 2';
$article->save();
$res = $article->toArray();
print_r($res);
}
}
?>
Результат выполнения кода:
[
"id" => 2,
"title" => "article 2",
"content" => "text 2",
"created_at" => "2026-09-07 10:30:00",
"updated_at" => "2026-09-07 10:30:00"
]
Пример
Обновим модель с включенными метками времени и посмотрим, как обновится поле updated_at:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function update()
{
$article = Article::find(2);
$article->title = 'article 2 updated';
$article->save();
$res = $article->toArray();
print_r($res);
}
}
?>
Результат выполнения кода:
[
"id" => 2,
"title" => "article 2 updated",
"content" => "text 2",
"created_at" => "2026-09-07 10:30:00",
"updated_at" => "2026-09-07 10:35:00"
]
Смотрите также
-
метод
touch,
который принудительно обновляет временные метки -
метод
withoutTimestamps,
который временно отключает обновление меток времени -
атрибут
dateFormat,
который определяет формат хранения дат -
атрибут
casts,
который преобразует типы данных модели