2016-08-15 114 views
2

我有2个表创建像这样:上的删除:级联不起作用

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,但不会删除与其相关的表中的其他属性。

我在想什么?

+0

你在使用SQLite吗? –

+0

我正在使用mySQL –

回答

1

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

+0

对不起,这正是我想要的“所有具有相同cv_id的行都将从教育表中删除”。很难解释我想要什么。它只是不起作用... –