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

Метод unsignedBigInteger

Метод unsignedBigInteger применяется в миграциях Laravel для создания столбца типа BIGINT UNSIGNED. Такой тип данных позволяет хранить целые числа от 0 до 18446744073709551615, что делает его идеальным для первичных ключей или внешних ключей, ссылающихся на поля с типом unsignedBigInteger. Метод вызывается на экземпляре Blueprint внутри метода up миграции и принимает один обязательный параметр - имя столбца.

Синтаксис

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

Пример

Давайте создадим таблицу 'orders' с полем 'user_id' типа unsignedBigInteger для связи с пользователем:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateOrdersTable extends Migration { public function up() { Schema::create('orders', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('product_name'); $table->integer('quantity'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('orders'); } } ?>

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

"Table orders created successfully"

Пример

Создадим внешний ключ с использованием unsignedBigInteger для связи таблиц:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class AddForeignKeyToOrdersTable extends Migration { public function up() { Schema::table('orders', function (Blueprint $table) { $table->unsignedBigInteger('user_id')->constrained('users')->onDelete('cascade'); }); } public function down() { Schema::table('orders', function (Blueprint $table) { $table->dropForeign(['user_id']); $table->dropColumn('user_id'); }); } } ?>

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

"Foreign key added to orders table"

Пример

Используем unsignedBigInteger для создания собственного первичного ключа:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration { public function up() { Schema::create('products', function (Blueprint $table) { $table->unsignedBigInteger('product_id')->primary(); $table->string('name'); $table->decimal('price', 10, 2); $table->timestamps(); }); } public function down() { Schema::dropIfExists('products'); } } ?>

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

"Table products created with custom primary key"

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

  • метод foreignId,
    который является сокращением для создания внешнего ключа
  • метод unsignedInteger,
    который создаёт беззнаковое 32-битное целое
  • метод bigInteger,
    который создаёт знаковое 64-битное целое
  • метод id,
    который создаёт первичный ключ с автоинкрементом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить