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');
});
Комментарии