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

Поле timestamps

Поле timestamps используется при создании миграций для добавления в таблицу двух колонок: created_at и updated_at. Эти колонки автоматически заполняются текущим временем при создании и обновлении записи в модели Eloquent. Метод вызывается внутри схемы таблицы и не принимает параметров.

Синтаксис

<?php Schema::create('table_name', function (Blueprint $table) { $table->timestamps(); }); ?>

Пример

Создадим миграцию для таблицы статей с использованием поля timestamps:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('articles'); } }; ?>

В результате выполнения миграции в таблице articles появятся колонки created_at и updated_at с типом timestamp.

Пример

При создании новой записи через модель Eloquent поле created_at автоматически заполняется текущим временем:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function store(Request $request) { $article = Article::create([ 'title' => 'article', 'content' => 'abcde', ]); $res = [ 'created_at' => $article->created_at, 'updated_at' => $article->updated_at, ]; echo json_encode($res); } } ?>

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

{"created_at":"2024-01-01 12:00:00","updated_at":"2024-01-01 12:00:00"}

Пример

При обновлении записи поле updated_at автоматически обновляется на текущее время:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function update(Request $request, $id) { $article = Article::find($id); $article->title = 'updated article'; $article->save(); $res = [ 'created_at' => $article->created_at, 'updated_at' => $article->updated_at, ]; echo json_encode($res); } } ?>

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

{"created_at":"2024-01-01 12:00:00","updated_at":"2024-01-01 12:05:00"}

Пример

Если необходимо отключить автоматическое обновление временных меток, можно использовать метод withoutTimestamps:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function update(Request $request, $id) { $article = Article::find($id); $article->withoutTimestamps(function () use ($article) { $article->title = 'updated without timestamp'; $article->save(); }); $res = $article->updated_at; echo json_encode($res); } } ?>

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

"2024-01-01 12:00:00"

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

  • поле timestamp,
    которое создаёт отдельную колонку с временной меткой
  • поле date,
    которое создаёт колонку для хранения даты
  • поле dateTime,
    которое создаёт колонку для хранения даты и времени
  • поле softDeletes,
    которое добавляет поддержку мягкого удаления записей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить