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

Поле foreignUuid

Метод foreignUuid применяется в миграциях Laravel для создания поля внешнего ключа, которое ссылается на UUID-поле связанной таблицы. Первым параметром передаётся имя создаваемого поля, вторым - имя связанной таблицы. По умолчанию метод создаёт поле типа uuid и устанавливает внешний ключ на поле id связанной таблицы.

Синтаксис

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

Пример с указанием связанной таблицы

Давайте создадим поле 'user_id', которое будет внешним ключом, ссылающимся на UUID-поле 'id' в таблице 'users':

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->uuid('id')->primary(); $table->string('title'); $table->text('content'); $table->foreignUuid('user_id', 'users')->constrained(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('posts'); } }; ?>

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

"Table 'posts' created successfully with foreign key 'user_id'"

Пример без указания связанной таблицы

Метод foreignUuid может принимать только имя поля. В этом случае Laravel автоматически определит связанную таблицу по имени поля:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('comments', function (Blueprint $table) { $table->uuid('id')->primary(); $table->text('text'); $table->foreignUuid('post_id')->constrained(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('comments'); } }; ?>

В этом примере Laravel автоматически свяжет поле 'post_id' с таблицей 'posts':

"Table 'comments' created with automatic foreign key detection"

Пример с дополнительными методами

Метод foreignUuid можно комбинировать с другими методами для настройки поведения внешнего ключа:

<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { public function up() { Schema::create('orders', function (Blueprint $table) { $table->uuid('id')->primary(); $table->decimal('total', 10, 2); $table->foreignUuid('user_id', 'users') ->constrained() ->cascadeOnDelete() ->cascadeOnUpdate(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('orders'); } }; ?>

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

"Table 'orders' created with cascade delete and update rules"

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

  • метод foreignId,
    который создаёт внешний ключ для целочисленного поля
  • метод uuid,
    который создаёт поле для хранения UUID
  • метод foreign,
    который создаёт внешний ключ для произвольного поля
  • метод constrained,
    который устанавливает ограничение внешнего ключа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить