关于删除:级联不起作用

时间:2016-08-15 11:40:14

标签: php laravel eloquent

我创建了两个表格如下:

Schema::create('educations', function(Blueprint $table){
    $table->increments('id');
    $table->string('title');
    $table->date('from_date');
    $table->date('to_date');
    $table->string('summary');
    $table->integer('cv_id')->unsigned();
    $table->foreign('cv_id')->references('id')
    ->on('cvs')
    ->onDelete('cascade')
    ->onUpdate('cascade');
    $table->timestamps();
});

他们与另一张桌子相关联:

Schema::create('cvs', function(Blueprint $table){
    $table->increments('id');
    $table->integer('student_id')->unsigned();
    $table->foreign('student_id')->references('id')
    ->on('students')
    ->onDelete('cascade')
    ->onUpdate('cascade');
    $table->string('summary');
    $table->timestamps();
});

问题是,每当我打电话给这一行:

$student->cv->delete();

它将删除cv,但不会删除与其相关的表中的其他属性。

我缺少什么?

1 个答案:

答案 0 :(得分:1)

这不是它的工作原理。 cascade表示当您从cvs表中检测到某些简历时,所有具有相同cv_id的行都将从educations表中删除。你不能期望整个表格会被删除。