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

Метод default

Метод default применяется к определению столбца в схеме базы данных и устанавливает значение, которое будет использоваться по умолчанию при вставке новой записи, если явно не указано другое значение. Метод принимает один параметр - значение по умолчанию, которое может быть любого типа данных, соответствующего типу столбца.

Синтаксис

<?php Schema::table('table_name', function (Blueprint $table) { $table->column_type('column_name')->default('default_value'); }); ?>

Пример

Давайте создадим миграцию для таблицы 'articles' и установим значение по умолчанию для поля 'status' как 'draft':

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

Пример

Установим значение по умолчанию для числового поля 'views' равным 0:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->integer('views')->default(0); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('views'); }); } }; ?>

При вставке новой статьи поле 'views' автоматически получит значение 0:

<?php use App\Models\Article; $article = new Article(); $article->title = 'New article'; $article->body = 'Content of new article'; $article->save(); echo $article->views; ?>

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

"0"

Пример

Установим значение по умолчанию для логического поля 'is_active' как true:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->boolean('is_active')->default(true); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('is_active'); }); } }; ?>

При создании новой записи поле 'is_active' будет автоматически установлено в true:

<?php namespace App\Http\Controllers; use App\Models\Article; class ArticleController extends Controller { public function store(): string { $article = Article::create([ 'title' => 'Active article', 'body' => 'This article is active' ]); return $article->is_active ? 'Active' : 'Inactive'; } } ?>

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

"Active"

Пример

Используем метод default совместно с методом nullable для поля 'deleted_at':

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->timestamp('deleted_at')->nullable()->default(null); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn('deleted_at'); }); } }; ?>

При создании записи поле 'deleted_at' будет иметь значение NULL, что указывает на то, что запись не удалена:

<?php use App\Models\Article; $article = Article::create([ 'title' => 'Article with soft delete', 'body' => 'Content for soft delete' ]); echo $article->deleted_at; ?>

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

"null"

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

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