Laravel: Миграция не работает по ошибке ошибка

Для пользовательских классов вам необходимо импортировать проект

expr -l Swift -- import MyTestProject
expr -l Swift --  let $vc = unsafeBitCast(0x7fad22c066d0, ViewController.self)
expr -l Swift -- print($vc.view)
0
задан Sander Plomp 16 January 2019 в 09:46
поделиться

2 ответа

В вашей первой таблице :

public function up()
{

Schema::create('Gerecht', function (Blueprint $table) {
$table->increments('Gerechtcode');
$table->string('Gerecht', 20);

$table->foreign('Gerechtcode')->references('Gerechtcode')->on('Subgerecht');
});

}

Вы используете первичный ключ (Gerechtcode) для ссылок на другую таблицу. Это невозможно. Я думаю, что это сработает, если вы измените первую таблицу на:

public function up()
{

Schema::create('Gerecht', function (Blueprint $table) {
$table->increments('Gerechtcode');
$table->unsignedInteger('SubgerechtCode');
$table->string('Gerecht', 20);

$table->foreign('SubgerechtCode')->references('Gerechtcode')->on('Subgerecht');
});

}

И вторая таблица на:

public function up()
{

Schema::create('Subgerecht', function (Blueprint $table) {
$table->increments('SubgerechtCode');
$table->string('Subgerecht', 25);
});

}

В таким образом, у вас есть отношения один-ко-многим, которые можно обрабатывать в Laravel. Но ваш код не позволяет мне понять ваши потребности.

0
ответ дан Saleiro 16 January 2019 в 09:46
поделиться

Ваша миграция сформирована неправильно. Во-первых, первичный ключ и внешний должны быть одного типа, в вашем случае, поскольку первичный ключ использует метод laravel increments, внешний ключ должен быть unsigned integer. Во-вторых, вы устанавливаете основной в первой таблице как иностранный в той же таблице, что совершенно неверно.

Ваши миграции должны выглядеть следующим образом

Первая таблица

public function up()
{

Schema::create('Gerecht', function (Blueprint $table) {
$table->increments('Gerechtcode');
$table->string('Gerecht', 20);

});

}

Вторая таблица

public function up()
{

Schema::create('Subgerecht', function (Blueprint $table) {
$table->increments('SubgerechtCode');
$table->unsignedInteger('Gerechtcode');
$table->string('Subgerecht', 25);

$table->foreign('Gerechtcode')->references('Gerechtcode')->on('Gerecht');
});

}
[ 119] Дополнительную информацию можно найти в документации .

0
ответ дан christopher_bincom 16 January 2019 в 09:46
поделиться
Другие вопросы по тегам:

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