Laravel删除相关记录

时间:2016-03-16 12:37:29

标签: php laravel

我有一家公司。那家公司有很多部门。当我想软件删除公司时,部门也应该软删除。现在我这样做:

Company.php

protected static function boot()                         
{                                                        
    parent::boot();                                      
    static::deleting(function($company) {                
        foreach($company->department as $department)     
        {                                                
            $department->delete();                       
        }                                                
    });                                                  
}   

但由于某种原因,只有第一个部门正在软件删除,而公司有17个部门。

我做错了什么???我现在正在寻找几个小时仍然没有解决方案!

- 编辑 -

一个部门有很多员工。

protected static function boot()
    {
        parent::boot();
        static::deleting(function($department) {
            Employee::where('DepartmentId','=',$department->DepartmentId)->delete();
        });
    }       

1 个答案:

答案 0 :(得分:0)

试试这个:

$departmentID[] = Department::where('company_id', '=', $company->id)->select('id')->distinct()->get()->toArray();
Department::where('company_id', '=', $company->id)->delete();

DB::table('users')->whereIn('department_id', $departmentID)->delete();

看,如果有帮助。