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

Метод useCurrent

Метод useCurrent применяется к столбцу типа timestamp или dateTime при создании таблицы в миграциях Laravel. Он устанавливает для столбца значение по умолчанию, равное текущей дате и времени на момент записи. Этот метод часто используется для автоматической установки времени создания записи без необходимости явно указывать его в коде.

Синтаксис

<?php Schema::create($table, function (Blueprint $table) { $table->timestamp($column)->useCurrent(); }); ?>

Пример

Давайте создадим таблицу 'articles' со столбцом 'created_at', который автоматически заполняется текущей датой и временем:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamp('created_at')->useCurrent(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('articles'); } }; ?>

Результат выполнения миграции:

"Migration completed successfully"

Пример

Метод useCurrent также может быть использован со столбцом dateTime. Давайте создадим таблицу 'posts' со столбцом 'published_at':

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('body'); $table->dateTime('published_at')->useCurrent(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('posts'); } }; ?>

Результат выполнения миграции:

"Migration completed successfully"

Пример

Метод useCurrent можно комбинировать с методом nullable для создания столбца, который может быть NULL, но по умолчанию заполняется текущей датой и временем:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('comments', function (Blueprint $table) { $table->id(); $table->string('author'); $table->text('content'); $table->timestamp('approved_at')->nullable()->useCurrent(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('comments'); } }; ?>

Результат выполнения миграции:

"Migration completed successfully"

Пример

Также метод useCurrent часто используется вместе с методом default для явного указания значения по умолчанию, но с текущим временем. Однако в большинстве случаев достаточно просто вызвать useCurrent без дополнительных методов. Вот пример использования с методом default:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; use IlluminateSupportFacadesDB; return new class extends Migration { public function up() { Schema::create('messages', function (Blueprint $table) { $table->id(); $table->string('sender'); $table->text('text'); $table->timestamp('sent_at')->default(DB::raw('CURRENT_TIMESTAMP')); $table->timestamps(); }); } public function down() { Schema::dropIfExists('messages'); } }; ?>

Результат выполнения миграции:

"Migration completed successfully"

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

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