Php onDelete('cascade')不删除数据透视表上的数据
我有以下迁移:Php onDelete('cascade')不删除数据透视表上的数据,php,laravel,Php,Laravel,我有以下迁移: public function up() { Schema::create('topics_to_subscriptions', function (Blueprint $table) { $table->engine = 'InnoDB'; $table->integer('topic_id')->unsigned(); $table->integer('s
public function up()
{
Schema::create('topics_to_subscriptions', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('topic_id')->unsigned();
$table->integer('subscription_id')->unsigned();
$table->foreign('topic_id')->references('id')->on('topics')->onDelete('cascade');
$table->foreign('subscription_id')->references('id')->on('subscriptions')->onDelete('cascade');
});
}
我的理解是,当使用onDelete'cascade'时,如果我删除订阅,那么所有相关的TopicsToSubscriptions都将被删除
当我运行App\Subscription::truncate时;已从“订阅”表中正确删除所有订阅,但未从主题\u到\u订阅中删除任何数据。我做错了什么?您不应该能够截断外键引用的表。我怀疑你的外键从未正确使用过
public function up()
{
Schema::create('youtube_topics_to_subscriptions', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('topic_id')->unsigned();
$table->integer('youtube_subscription_id')->unsigned();
$table->foreign('topic_id')->references('id')->on('youtube_topics')->onDelete('cascade');
$table->foreign('youtube_subscription_id')->references('id')->on('youtube_subscriptions')->onDelete('cascade');
});
}