Laravel 5.8 Схема добавления внешнего ключа не работает - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь создать внешние ключи в Laravel 5.8, и при переносе таблицы с помощью Artisan внешний ключ не устанавливается. В таблице cities и таблице provinces все поля id являются целыми числами без знака. Я работаю с wamp64 на Windows 10.

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->integer('city_id')->unsigned();
        $table->integer('province_id')->unsigned();
        // table Foreign Key
        $table->foreign('city_id')->references('id')->on('cities');
        $table->foreign('province_id')->references('id')->on('provinces');
    });
}

1 Ответ

0 голосов
/ 03 мая 2019

, потому что у вас уже есть users строк в вашем users database table.чтобы достичь этого, вы должны сделать эти новые поля city_id и province_id как nullable в качестве значения по умолчанию.

, поэтому ваша миграция должна быть такой, как показано ниже:

public function up()
{
    Schema::table('users', function (Blueprint $table) {

         // I have added here nullable for both city_id and province_id

        $table->integer('city_id')->unsigned()->nullable();
        $table->integer('province_id')->unsigned()->nullable();
        // table Foreign Key
        $table->foreign('city_id')->references('id')->on('cities');
        $table->foreign('province_id')->references('id')->on('provinces');
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...