У меня есть две таблицы, одна из них profiles
. Ниже показано, как файл миграции для profiles
выглядит так:
public function up()
{
Schema::create(
'profiles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique()->notNullable();
$table->string('phone');
$table->integer('category')->unsigned();
$table->string('password');
$table->timestamps();
$table->foreign('category')
->references('id')
->on('categories')
->onDelete('cascade');
});
}
profiles
имеет внешний ключ id
в своем локальном category field
. Файл миграции для таблицы categories
выглядит так
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->integer('id')->unsigned();
$table->primary('id');
$table->string('name');
$table->string('abbrv');
$table->timestamps();
});
}
Проблема заключается в том, что при попытке добавить данные в таблицу профилей я получаю ошибку ниже
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
authdb .
профили , CONSTRAINT
profiles_category_foreign FOREIGN KEY (
категория ) REFERENCES
категории (
ID ) ON DELETE CASCADE) (SQL: insert into
профили (
имя ,
электронная почта ,
телефон ,
категория ,
пароль ,
updated_at ,
create_at ) values (Salim, jon.doe@gmail.com, 2557000000, 2, $2y$10$OgpgD61e9Ihob4oE1LoRZuMkMY/1u6yLzxPKvs36TAQtQzSfqShMS, 2020-04-19 13:34:20, 2020-04- 19 13:34:20))
Как определить ограничение внешнего ключа, чтобы оно не выдавало ошибки ограничения?