Laravel: как добавить внешний ключ (foreign reference) на пользователя

Если необходимо добавить в таблице foreign внешний ключ (foreign reference) на пользователя, необходимо учесть, в каком формате в таблице пользователей добавлен id (в новой таблице формат должен совпадать).

Пример: 

Создание таблицы пользователей (по дефолту в Laravel 8):

Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});

В данном случае мы видим, что тип id четко не указан, но если посмотреть в базе данных - то видно, что это bigint(20)

 

Пример, как добавить ключ: 

Schema::create('example_table', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->bigInteger('user_id')->unsigned();
$table->timestamps();

$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});

 

 

Комментарии

Комментариев пока нет, вы можете оставить свой: