【发布时间】:2015-12-18 20:11:06
【问题描述】:
我正在使用 laravel 构建票务系统。但是当我删除一张票时,反应并没有消失?
这是我对数据透视表的迁移:
public function up()
{
Schema::create('reactions_ticket',function(Blueprint $table)
{
$table->integer('ticket_id')->unsigned();
$table->foreign('ticket_id')->references('id')->on('ticket')->onDelete('cascade');
$table->integer('reactions_id')->unsigned();
$table->foreign('reactions_id')->references('id')->on('reactions')->onDelete('cascade');
});
}
这是我的反应表:
public function up()
{
Schema::create('reactions',function(Blueprint $table)
{
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->text('content');
$table->timestamps();
});
}
还有我的票桌:
public function up()
{
Schema::create('ticket',function(Blueprint $table)
{
$table->increments('id');
$table->string('slug')->nullable();
$table->integer('ticketid')->unsigned();
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('subject_id')->unsigned();
$table->foreign('subject_id')->references('id')->on('subject')->onDelete('cascade');
$table->integer('websites_id')->unsigned();
$table->foreign('websites_id')->references('id')->on('websites')->onDelete('cascade');
$table->integer('status_id')->unsigned();
$table->foreign('status_id')->references('id')->on('status')->onDelete('cascade');
$table->text('content');
$table->timestamps();
});
}
我做错了什么>?
【问题讨论】:
-
你有软删除吗?
-
感谢您的回复。但我为什么要这样做?我只想删除与该票相关的所有内容。当我转到 laravel 文档时,它告诉我有关 softDeleting 的信息:“当软删除模型时,它实际上并没有从您的数据库中删除。”这不是我想要的。
-
如果你的
tickets模型上有softDeleting,调用delete()不会删除它的关系。 -
好的,但是检查了一下,我的 Ticket 模型中没有 softDeleting。
-
看起来如果你要删除一个反应票证,票证和反应都会被删除,但如果你删除一个票证,我看不到级联会发生在哪里。