Я использую Laravel Framework; У меня есть несколько связанных таблиц,
Пользователь Таблица схем:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
Артикул Таблица схем:
Schema::create('articles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string("title");
$table->string("slug")->unique();
$table->text("cover");
$table->text("body");
$table->boolean("status")->default(1);
$table->timestamps();
});
Комментарий Таблица схем:
Schema::create('comments', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger("user_id");
$table->foreign("user_id")->references("id")->on("users")->onDelete('cascade');
$table->unsignedBigInteger("article_id");
$table->foreign("article_id")->references("id")->on("articles")->onDelete('cascade');
$table->text("comment");
$table->bigInteger("level");
$table->boolean("status")->default(0);
$table->timestamps();
});
В таблице комментариев у меня есть этот важный код:
$table->unsignedBigInteger("user_id");
$table->foreign("user_id")->references("id")->on("users")->onDelete('cascade');
$table->unsignedBigInteger("article_id");
$table->foreign("article_id")->references("id")->on("articles")->onDelete('cascade');
Я хочу, чтобы при удалении статьи или пользователя я хотел бы удалить свои комментарии при удалении пользователя или статьи, но это ошибка в SQL базе данных сервера.
форма ошибки SQL база данных сервера : введите описание изображения здесь
Когда я удалил этот метод
-> onDelete ('cascade');
Ошибка исчезает .
Мне определенно нужен соответствующий метод. Кто-нибудь может мне помочь решить эту проблему?