Может кто-нибудь помочь мне с этим? Я новичок в Laravel и когда я пытаюсь сделать:
php artisan migrate
Я получаю ошибку:
Подсветка \ База данных \ QueryException: SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить сообщения таблицы, добавить ограничение posts_author_id_foreign внешний ключ (author_id) ссылается на пользователей (id) при ограничении удаления)
и это содержание таблицы сообщений:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePostsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->integer('author_id')->unsigned();
$table->foreign('author_id')->references('id')->on('users')->onDelete('restrict');
$table->string('title');
$table->string('slug')->unique();
$table->text('excerpt');
$table->text('body');
$table->string('image')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
Я заметил, что когда я комментирую эту строку:
$table->foreign('author_id')->references('id')->on('users')->onDelete('restrict');
ошибка ушла, поэтому я думаю, проблема в этой строке. Итак, может кто-нибудь сказать мне, какой будет правильный синтаксис или как его исправить?