Общая ошибка: 1824 Не удалось открыть ссылочную таблицу - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь установить внешний ключ своей таблицы 'books' с таблицей 'Categories', используя php artisan migrate, но я получил следующую ошибку:

    Illuminate\Database\QueryException 

  SQLSTATE[HY000]: General error: 1824 Failed to open the referenced table 'categories' (SQL: alter table `books` add constraint `books_category_id_foreign` foreign key (`category_id`) references `categories` (`id`))

файл миграции книг:

public function up()
{
    Schema::create('books', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('category_id')->unsigned();
        $table->foreign('category_id')->references('id')->on('categories');
        $table->string("image");
        $table->string("title");
        $table->string("description")->nullable();
        $table->string("author");
        $table->string("cover");
        $table->integer("nod")->nullable();// Number of downloads
        $table->integer("rating")->nullable();
        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('books');
}

файл миграции категорий:

public function up()
{
    Schema::create('categories', function (Blueprint $table) {
        $table->increments('id');
        $table->string("title");
        $table->string("image");
        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('categories');
}

Мне очень нужна помощь с этим, чтобы использовать в API моего мобильного приложения. Я надеюсь, что кто-то может мне помочь.

1 Ответ

0 голосов
/ 17 апреля 2020

У меня была та же самая ошибка прямо сейчас.

Это связано с созданием этих миграций.

Проблема, с которой я столкнулся, потому что я рефакторил имя таблицы вручную, а не

позаботился о связи между таблицами и сразу попытался

перенести их.

Решение, которое я сделал и работал для меня, - я удалил миграции вручную и создал их снова, используя php make:magirate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...