$ model-> get()返回软删除

时间:2016-02-05 22:54:49

标签: php laravel laravel-5

当我运行以下方法时,它返回一个包含软删除的集合......显然,它不应该。

return $twitter_oauth->get();

我认为它可能是我的TwitterOAuth模型中的启动功能。我使用下面的boot meth软删除相关模型(按原样运行)。

public static function boot()
{
    TwitterOAuth::deleting(function($twitter_oauth) {
        $twitter_oauth->posts()->delete();
    });

    TwitterOAuth::restoring(function($twitter_oauth) {
        $twitter_oauth->posts()->withTrashed()->restore();
    });
}

现在,如果我删除引导方法并运行相同的get查询,则软删除不会出现在集合中。奇怪的。任何人都有经验或遇到这个问题 - 或者看到我的问题?

我知道我可以在查询中使用whereNull,但这似乎是一个黑客攻击。必须有更好的方法......

1 个答案:

答案 0 :(得分:2)

需要在我的启动方法中包含parent::boot();。解决了它。

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

    TwitterOAuth::deleting(function($twitter_oauth) {
        $twitter_oauth->posts()->delete();
    });

    TwitterOAuth::restoring(function($twitter_oauth) {
        $twitter_oauth->posts()->withTrashed()->restore();
    });
}