@kaliboba

Почему выдаёт ошибку?

Сама ошибка: SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'category_id' doesn't exist in table (Connection: mysql, SQL: alter table `products` add constraint `products_category_id_foreign` foreign key (`category_id`) references `categories` (`id`))
Проблема: Хочу сделать связь между таблицами, но не могу сделать миграцию из-за этой ошибки. Имеется две таблицы - products и categories
products
public function up(): void
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->timestamps();

            $table->string('name');
            $table->integer('price');
            $table->text('des');
            $table->foreign('category_id')->references('id')->on('categories');
        });
    }

categories
public function up(): void
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->id();
            $table->timestamps();

            $table->string('name');
        });
    }
  • Вопрос задан
  • 397 просмотров
Решения вопроса 1
Сначала создаешь таблицу категорий, а потом продуктов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
public function up(): void
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->timestamps();

            $table->string('name');
            $table->integer('price');
            $table->text('des');
            $table->unsignedBigInteger('category_id');
            $table->foreign('category_id')->references('id')->on('categories');
        });
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы