Поле integer
Метод integer используется в классе Blueprint при создании миграций. Он добавляет в таблицу колонку типа INT. Первым параметром передаётся имя колонки, вторым - длина (по умолчанию 11 для MySQL). Метод возвращает экземпляр ColumnDefinition, позволяя дополнительно настроить колонку с помощью модификаторов nullable, default, unsigned и других.
Синтаксис
<?php
Schema::table('table_name', function (Blueprint $table) {
$table->integer('column_name', $length = 11);
});
?>
Пример
Создадим миграцию для таблицы articles с полями id, title, views и rating:
<?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->integer('views')->default(0);
$table->integer('rating')->nullable();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('articles');
}
};
?>
Результат выполнения команды миграции:
"Migration completed successfully"
Пример
Используем модификатор unsigned для создания беззнакового целого числа, например, для внешнего ключа:
<?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('comments', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('article_id');
$table->text('content');
$table->integer('likes')->default(0);
$table->timestamps();
$table->foreign('article_id')
->references('id')
->on('articles')
->onDelete('cascade');
});
}
public function down(): void
{
Schema::dropIfExists('comments');
}
};
?>
Результат выполнения миграции:
"Migration completed successfully"
Пример
Добавим колонку score в существующую таблицу users с помощью метода table:
<?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->integer('score')->default(0)->after('email');
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('score');
});
}
};
?>
Результат выполнения команды:
"Column added successfully"
Смотрите также
-
метод
unsignedBigInteger,
который создаёт беззнаковое большое целое -
метод
bigInteger,
который создаёт большое целое число -
метод
unsignedInteger,
который создаёт беззнаковое целое -
метод
id,
который создаёт первичный ключ с автоинкрементом