【发布时间】:2020-06-18 20:45:12
【问题描述】:
我仍在学习 Laravel,当我想从数据库中删除记录时遇到了问题。很可能我错过了一些简单的东西。
我有一个如下所示的推文迁移:
public function up()
{
Schema::create('tweets', function (Blueprint $table) {
$table->bigIncrements('id');
$table->foreignId('user_id');
$table->string('body');
$table->timestamps();
});
}
还有一个likes-migration的帽子是这样的:
public function up()
{
Schema::create('likes', function (Blueprint $table) {
$table->bigIncrements('id');
$table->foreignId('user_id')->constrained()->cascadeOnDelete;
$table->foreignId('tweet_id')->constrained()->cascadeOnDelete;
$table->boolean('liked');
$table->timestamps();
$table->unique(['user_id', 'tweet_id']);
});
}
当我在修补时我说
$tweet->delete();
只有当它没有喜欢时,它才会删除推文记录。 如果推文有赞,我会收到错误消息:
Illuminate/Database/QueryException with message 'SQLSTATE[23000]: Integrity constraint violation : 1451 Cannot delete or update a parrent row: a foreign key constraint fails...."
我认为我在迁移过程中犯了一个非常基本的错误,但我不知道是哪个。
谁能给点建议?
亲切的问候,
休伯特
【问题讨论】:
-
这可能会对您有所帮助 - stackoverflow.com/questions/47544109/…。还有,你用的是哪个版本的?laravel