На Laravel я получаю ошибку errno: 150 «Ограничение внешнего ключа неправильно сформировано» - PullRequest
0 голосов
/ 26 сентября 2018

Я новичок в Laravel и у меня проблемы с миграциями.

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

Состояния ошибки

SQLSTATE [HY000]: общая ошибка: 1005 Невозможно создать таблицу first_db. #sql-41c_2f (номер ошибки: 150 «Неправильно сформировано ограничение внешнего ключа») (SQL: изменить таблицу fees добавить ограничениеfees_academic_id_foreign ссылки на внешний ключ (academic_id) academics (academic_id))

Ошибка указывает на этот файл ниже:

Schema::create('fees', function (Blueprint $table) {
    $table->increments('fee_id');
    $table->integer('academic_id')->unsigned;
    $table->integer('level_id')->unsigned;
    $table->integer('fee_type_id')->unsigned;
    $table->string('fee_heading',200)->nullable;
    $table->float('amount', 8, 2);
    $table->foreign('academic_id')->references('academic_id')->on('academics');
    $table->foreign('level_id')->references('level_id')->on('levels');
    $table->foreign('fee_type_id')->references('fee_type_id')->on('feestype');
});

Есть ли что-то, что яя делаю не так?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Этот внешний столбец должен быть без знака.

Schema::create('fees', function (Blueprint $table) {
    $table->increments('fee_id');
    $table->unsignedInteger('academic_id');
    $table->unsignedInteger('level_id');
    $table->unsignedInteger('fee_type_id');
    $table->string('fee_heading',200)->nullable();
    $table->float('amount', 8, 2);

    $table->foreign('academic_id')->references('academic_id')->on('academics');
    $table->foreign('level_id')->references('level_id')->on('levels');
    $table->foreign('fee_type_id')->references('fee_type_id')->on('feestype');
});

Источник: База данных Laravel: Столбцы миграции

0 голосов
/ 26 сентября 2018

без знака должна быть функция:

$table->integer('academic_id')->unsigned();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...