belongsTo(HelpTopic::class,'ticket_category_id'); } public function comments(){ return $this->hasMany(HelpTicketComment::class); } /* |-------------------------------------------------------------------------- | SCOPES |-------------------------------------------------------------------------- */ /* |-------------------------------------------------------------------------- | ACCESORS |-------------------------------------------------------------------------- */ public function getOwnerAttribute(){ return $this->name ?? $this->email; } /* |-------------------------------------------------------------------------- | MUTATORS |-------------------------------------------------------------------------- */ 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::creating(function ($ticket) { $ticket->code = strtoupper(str_random(5)) . date('jn'); }); static::deleting(function($obj) { $disk = config('filesystems.default'); \Storage::disk($disk)->delete($obj->attachment); }); } }