Метод change
Метод change применяется к объекту схемы в миграциях Laravel
и позволяет изменить существующие столбцы таблицы. Он используется
вместе с методами определения типов полей для модификации
атрибутов столбцов, таких как тип данных, длина, возможность
принимать NULL значения и другие свойства.
Синтаксис
<?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('table_name', function (Blueprint $table) {
$table->integer('column_name')->change();
});
}
public function down(): void
{
Schema::table('table_name', function (Blueprint $table) {
$table->string('column_name')->change();
});
}
};
?>
Пример
Давайте изменим тип поля 'age' с 'integer' на 'bigInteger':
<?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('users', function (Blueprint $table) {
$table->bigInteger('age')->change();
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->integer('age')->change();
});
}
};
?>
Пример
Давайте сделаем поле 'email' nullable:
<?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('users', function (Blueprint $table) {
$table->string('email')->nullable()->change();
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->string('email')->nullable(false)->change();
});
}
};
?>
Пример
Давайте изменим длину строкового поля 'name' с 255 на 100 символов:
<?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('users', function (Blueprint $table) {
$table->string('name', 100)->change();
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->string('name', 255)->change();
});
}
};
?>
Смотрите также
-
метод
table,
который определяет таблицу для изменения -
метод
nullable,
который делает поле допускающим NULL значения -
метод
renameColumn,
который переименовывает столбец в таблице -
метод
dropColumn,
который удаляет столбец из таблицы