Düzenli olarak belli bir süreden sonra içeriklerinizi silmek isterseniz Prunable kullanabilirsiniz. Observer, Job vb. yöntemlerin aksine Prunable ile bu işlemi kolaylıkla yapabilirsiniz. Kullanımı şu şekilde;
Illuminate\Database\Eloquent\Prunable veya Illuminate\Database\Eloquent\MassPrunable traitlerinden birini import edebilirsiniz.
Daha sonra prunable metodunda silme koşulunu belirlemelisiniz.
Örnek kullanıma göz atalım;
// https://laravel.com/docs/8.x/eloquent#pruning-models namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Prunable; class Flight extends Model { use Prunable; /** * Get the prunable model query. * * @return \Illuminate\Database\Eloquent\Builder */ public function prunable() { return static::where('created_at', '<=', now()->subMonth()); } }
Eğer bir modeli Prunable olarak tanımlarsanır, alternatif olarak pruning metodunu da kullanabilirsiniz. Bu metot model silinmeden önce işlem yapar. Örnek olarak modelle bağlantılı diğer silme işlemlerini yapabiliriniz; dosya, resim vb silme.
protected function pruning() { // }
İlk Yorumu Siz Yapın