unsignedInteger
Метод unsignedInteger применяется в миграциях Laravel для создания столбца с типом беззнакового целого числа. Такой столбец может хранить только неотрицательные целые значения от 0 до 4294967295. Этот тип часто используется для внешних ключей, идентификаторов и счётчиков. Метод не принимает параметров и возвращает объект ColumnDefinition для дальнейшей настройки.
Синтаксис
<?php
Schema::create($table, function (Blueprint $table) {
$table->unsignedInteger($column);
});
?>
Пример
Создадим таблицу 'articles' с полем 'view_count' типа беззнаковое целое число:
<?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('content');
$table->unsignedInteger('view_count')->default(0);
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('articles');
}
};
?>
Пример
Используем unsignedInteger для создания внешнего ключа, ссылающегося на поле 'id' таблицы 'users':
<?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('posts', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('user_id');
$table->string('title');
$table->text('body');
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});
}
public function down(): void
{
Schema::dropIfExists('posts');
}
};
?>
Пример
Создадим столбец 'age' с типом беззнаковое целое и сделаем его 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->unsignedInteger('age')->nullable();
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('age');
});
}
};
?>
Смотрите также
-
метод
unsignedBigInteger,
который создаёт беззнаковое большое целое число -
метод
unsignedTinyInteger,
который создаёт беззнаковое малое целое число -
метод
unsignedSmallInteger,
который создаёт беззнаковое короткое целое число -
метод
integer,
который создаёт обычное целое число со знаком