我有一本书和作者表。作者有很多书。一本书有一位作者。
我希望软删除作者。
所以我在authors表中有一个deleted_at字段(我还需要在books表中使用它吗?)。书架表中还有一个author_id外键。
我打电话:
Author::destroy($id);
但我收到错误:
Cannot delete or update a parent row: a foreign key constraint fails
我正在使用larval 4.1
以下是我的迁移:
Schema::create('authors', function($table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
$table->softDeletes();
});
Schema::create('books', function($table) {
$table->increments('id');
$table->integer('author_id')->unsigned();
$table->foreign('author_id')->references('id')->on('authors');
$table->string('title'); // Varchar
$table->string('isbn'); // Varchar
});
答案 0 :(得分:0)
有没有想过级联删除?
//Suggested implementation , will this work ?
$table->foreign('author_id')->references('id')->on('authors')->onDelete('cascade');
// my current implementation
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');