Edit File: Category.php
<?php namespace App\Models; use App\Traits\Uploadable; use Illuminate\Database\Eloquent\Model; use Spatie\Translatable\HasTranslations; use Illuminate\Database\Eloquent\Factories\HasFactory; class Category extends Model { use HasFactory, HasTranslations , Uploadable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['name' , 'image' , 'slug' , 'category_id' , 'status']; public $translatable = ['name']; public function getImagePathAttribute() { return asset('assets/uploads/categories/' . $this->image); } protected function asJson($value) { return json_encode($value, JSON_UNESCAPED_UNICODE); } public function setImageAttribute($value) { if ( null != $value && is_file($value) ) { $this->attributes['image'] = $this->uploadFile($value, 'categories'); } } public function subcategories() { return $this->hasMany(Category::class, 'category_id'); } public function stores(){ return $this->belongsToMany(UserCategory::class , 'user_categories' , 'category_id' , 'user_id'); } public static function boot() { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ self::deleted(function ($model) { $model->deleteFile($model->attributes['image'], 'categories'); }); } }
Back to File Manager