Product modelinde, veritabanında images şeklinde json formatında görsellerin isimlerini tuttuğum bir uygulamam var. Görsel isimleri;
image1_thumb.jpg
image1_medium.jpg
image1_large.jpg
şeklinde. Bu durumda aşağıdaki betik ile Product modelinde silinme gerçekleşince resimlerin de silinmesini sağlıyorum:
public static function boot()
{
parent::boot();
self::deleting(function ($product) {
if (!empty($product->images)) {
foreach (json_decode($product->images) as $image) {
$imageUrl = public_path('uploads') . '/' . explode('.', $image)[0] . '*';
array_map('unlink', glob($imageUrl));
}
}
});
}