// В контроллере картинки не трогаем
public function destroy($id)
{
Pechnik::destroy($id);
// return ..
}
// Pechnik.php
protected static function booted()
{
// При удалении удаляем связаные картинки
static::deleted(function (Pechnik $pechnik) {
// Обновлено, т.к. mass delete не вызывает событие для модели Image
// $pechnik->images()->delete();
// Подход тоже не оптимальный, лишние запросы к БД. Есть что улучшать.
foreach ($pechnik->images as $image) {
$image->delete();
}
});
}
// Image.php
protected static function booted()
{
// Удаление картинки из БД - удаляем файл
static::deleted(function (Image $image) {
// Удаляем файл
});
}
/**
* Полный адрес поста.
*
* @return string
*/
public function getFullAddressAttribute()
{
return url("/{$this->user_id}/post/{$this->id}");
}
// Использование
$post->full_address;