Edit File: Plan.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\File; use Spatie\Translatable\HasTranslations; use App\Traits\Uploadable; class Plan extends Model { use HasFactory , Uploadable , HasTranslations ; protected $fillable = ['name' , 'expected_views' , 'price' , 'type' , 'logo', 'available']; public $translatable = ['name']; protected function asJson($value) { return json_encode($value, JSON_UNESCAPED_UNICODE); } public function getLogoPathAttribute() { if ($this->attributes['logo']) { $image = $this->getImage($this->attributes['logo'], 'plans'); } else { $image = asset('assets/uploads/settings/logo.png'); } return $image; } public function setLogoAttribute($value) { if ( null != $value && is_file($value) ) { $this->attributes['logo'] = $this->uploadOne($value, 'plans'); } } public static function boot() { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ self::deleted(function ($model) { $model->deleteFile($model->attributes['logo'], 'plans'); }); } public function users() { return $this->belongsToMany(User::class , 'subscriptions'); } public function subscriptions() { return $this->hasMany(Subscription::class ); } }
Back to File Manager