在我的模型中,我设置了引导方法,因此当我软删除记录时,相关记录也会被软删除。像这样:
公司.php
protected static function boot()
{
parent::boot();
static::deleting(function($company) {
$company->department()->delete();
});
}
部门.php:
protected static function boot()
{
parent::boot();
static::deleting(function($department) {
dd('test');
});
}
所以当我想软删除一家公司时,部门也应该被软删除。但是当我在 static::deleting
(Department.php) 中 dd
时,这是没有达到的。当我像这样 dd
时:
部门.php
protected static function boot()
{
parent::boot();
dd('test');
static::deleting(function($department) {
});
}
结果是测试
我在这里做错了什么?
最佳答案
将此添加到您的 Company.php 模型中:
public function departments()
{
return $this->hasMany('App\Department');
}
将此添加到您的 Department.php 模型中:
public function company()
{
return $this->belongsTo('App\Company');
}
在 Company.php 中更新您的引导方法以供引用
$company->departments()->delete()
那你应该把Department.php文件中的boot方法去掉,因为这个不需要。
关于php - Laravel 启动方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36032086/