使用级联从多个表中删除

时间:2018-12-01 15:31:20

标签: php database laravel eloquent cascading-deletes

我有三个表studentusercontact,学生与Contact有关系,Contact与User表有关系(user_id)。 当我尝试从学生中删除时,应使用级联删除将其从用户和联系人中删除。但是,它仅从Student表中删除,并将数据保留在User和Contact表中。

StudentController

<?php

public function destroy(Student $student)
{
    $student->delete();

    return redirect('/admin/student')->with('success','has been Deleted');
}

我在学生模型中使用

  public function contact()
{
    return $this->belongsTo('App\Contact');

}

public static function boot() {
    parent::boot();

    static::deleting(function($student) {
         $student->contact()->delete();

    });

这是可行的,但是我在联系模型中使用了

  public function user()
{
    return $this->belongsTo('App\User');

}
public static function boot() {
    parent::boot();

    static::deleting(function($contact) {
         $contact->user()->delete();

    });

在删除学生中删除联系人,但不删除用户

我不知道如何解决它。

0 个答案:

没有答案