как сделать отношения один ко многим в моей таблице комментариев - PullRequest
0 голосов
/ 01 мая 2020

Я поместил этот код в миграцию моих статей:

Schema::create('articles', function (Blueprint $table) {
    $table->id();
    $table->unsignedBigInteger('user_id');
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    $table->string('author');
    $table->longText('description');
    $table->string('title');
    $table->text('tags');
    $table->timestamps();
});

конец, затем я использую этот код в файле миграции моих комментариев:

Schema::create('comments', function (Blueprint $table) {
    $table->id();
    $table->unsignedInteger('article_id');
    $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
    $table->string('user_id');
    $table->string('user_name'); 
    $table->longtext('teks');
    $table->timestamps();
});

и когда я пытаюсь сделать при миграции с php ремесленник мой терминал выдает сообщение об ошибке:

("SQLSTATE [HY000]: общая ошибка: 1005 Не удается создать таблицу projek_akhir_laravel. comments (номер ошибки: 150 "Неправильно сформировано ограничение внешнего ключа") ")

1 Ответ

0 голосов
/ 01 мая 2020

В миграциях $this->id(); создает поле unsignedBigInteger.

Таким образом, ваше поле, которое будет содержать ваш внешний ключ, должно иметь тот же формат:

Schema::create('comments', function (Blueprint $table) {
    $table->id();
    $table->unsignedBigInteger('article_id');
    ....
}

Вы можете использовать этот помощник для иностранцев:

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