belongsTo(HelpTicket::class); } public function user(){ return $this->belongsTo(User::class); } /* |-------------------------------------------------------------------------- | SCOPES |-------------------------------------------------------------------------- */ /* |-------------------------------------------------------------------------- | ACCESORS |-------------------------------------------------------------------------- */ public function getOwnerAttribute(){ return $this->user->full_name ?? $this->name; } /* |-------------------------------------------------------------------------- | MUTATORS |-------------------------------------------------------------------------- */ //todo use trait for image upload public function setAttachmentAttribute($file){ $attribute_name = "attachment"; $disk = config('filesystems.default'); // or use your own disk, defined in config/filesystems.php $destination_path = "help"; // path relative to the disk above if($file){ $filename = md5($file.time()) . '.' . strtolower($file->getClientOriginalExtension()); // 2. Move the new file to the correct path $file_path = $file->storeAs($destination_path, $filename, $disk); $this->attributes[$attribute_name] = $file_path; } } /** * Boot all of the bootable traits on the model. */ public static function boot() { parent::boot(); static::deleting(function($obj) { $disk = config('filesystems.default'); \Storage::disk($disk)->delete($obj->seats_image); }); } }