升级到4.2后,关系会忽略软删除

时间:2014-06-05 00:11:07

标签: php laravel eloquent

在我的模型中,我有以下关系:

public function packages()
{
    return $this->hasMany('Package');
}

升级到4.2之后,它将返回所有软删除的记录,之前在4.1中它正常工作。如果我将->whereNull('deleted_at')添加到关系中,它就像以前一样。

Package模型正在按照文档中升级过程的指示使用软删除的特征

2 个答案:

答案 0 :(得分:0)

软删除随4.2更新而更改。我不喜欢这些更改,但这里有一个信息链接,解释了为什么您的软删除无法正常工作:

http://laravel.com/docs/upgrade#upgrade-4.2

答案 1 :(得分:0)

在Laravel 4.2中,特征必须具有这种形状:

如果使用BaseModel:

class BaseModel extends Eloquent{
   protected $dates = ['deleted_at'];    
}

class SubModel extends BaseModel{
   use SoftDeletingTrait;
}

显然,在使用特征的laravel 4.2中,您不能再将BaseModel声明为软删除,并且所有子模型都继承此结构,您必须在每个子模型中声明use SoftDeletingTrait;