Mam następujące modele; Brand, Image i Image_size. Marka ma jeden obraz i obraz ma wiele rozmiarów obrazu. Wszystkie te modele używają delikatnych operacji usuwania, a usuwanie elementów jest w porządku. Jeśli jednak chciałbym przywrócić markę, która została usunięta, muszę również przywrócić powiązane obrazy i modele image_size.Laravel 5: Jak odzyskać usunięte powiązane modele?
Szukałem przy użyciu zdarzeń modelu, więc gdy przywrócony zostanie mój model marki, mogę uzyskać obraz i przywrócić go, a następnie będę mieć podobne wydarzenie w modelu obrazu, aby uzyskać rozmiary obrazu i przywrócić te. Staram się jednak o rejestrację usuniętego obrazu dla marki. To co mam, to staram się zrobić w moim modelu marki:
/**
* Model events
*/
protected static function boot() {
parent::boot();
/**
* Logic to run before delete
*/
static::deleting(function($brand) {
$brand->image->delete();
});
/**
* Logic to run before restore
*/
static::restoring(function($brand) {
$brand = Brand::withTrashed()->with('image')->find($brand->id);
$brand->image->restore();
});
}
Właśnie pojawia się następujący komunikat o błędzie na linii, która stara się odtworzyć obraz:
Call to a member function restore() on a non-object