2016-02-05 2 views
3

Когда я запускаю следующий метод, он возвращает коллекцию с включенными мягкими удалениями ... и, очевидно, это не должно.

return $twitter_oauth->get(); 

Я думаю, что это может быть функция загрузки в моей TwitterOAuth модели. Я использую метод загрузки ниже, чтобы мягко удалить соответствующие модели (работает так, как должно).

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

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

Теперь, если я удалить метод загрузки и запустить тот же get запроса, мягкие удаления не появляются в коллекции. Weird. Любой человек имеет опыт или сталкивается с этой проблемой или видит мою проблему?

Я знаю, что могу использовать whereNull в своих запросах, но это похоже на взломать. Должен быть лучший способ ...

+0

$ twitter_oauth-> all(); также возвращает коллекцию с включенными мягкими удалениями? –

+0

Yup! Это по сути то же самое ... Я тестировал это раньше. –

+0

У вашей модели есть черта SoftDeletes? –

ответ

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(); 
    }); 
} 
+0

Ну, сложная вещь. Вспомни это. –

+0

Да ... бьется головой о стену. Узнайте что-то новое каждый день lol –

Смежные вопросы