HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers84/zuiderbos.nl/workbench/komma/kms/src/Komma/Kms/Files/FileRepository.php
<?php


namespace Komma\Kms\Files;


use Komma\Kms\Files\Model\File;

class FileRepository
{
    protected $relatedModel;

    /**
     * @param String $model
     */
    public function setRelatedModel($model)
    {
        $this->relatedModel = $model;
    }

    public function file($id)
    {
        
    }

    public function filesFromModel($fileableId)
    {
        $files = [];

        // Find image record that belong to our related model
        $fileRecords = File::where('fileable_type', $this->relatedModel)->where('fileable_id', $fileableId)->get();

        // Loop through images
        foreach($fileRecords as $record)
        {
            $file = new \stdClass();
            $file->id = $record->id;
            $file->name = $record->name;
            $file->path = $record->path;

            $files[] = $file;
        }

        return $files;
    }
    
    public function store($files, $fileableId)
    {
        // Files must be an array
        if( ! is_array($files)) return false;

        // Loop through each file
        foreach ($files as $file)
        {
            // Check if we need to delete a file
            if(isset($file->delete) && $file->delete == true)
            {
                // Destroy the image
                File::destroy($file->id);

                // Skip import part below
                continue;
            }
            // Add a new file
            else
            {
                // Find model
                if( ! $model = File::find($file->id))
                    $model = new File();

                // Update model data
                if (isset($file->name)) $model->name = $file->name;
                if (isset($file->path)) $model->path = $file->path;

                // Set related model and id
                $model->fileable_type = $this->relatedModel;
                $model->fileable_id = $fileableId;

                // Save file model
                $model->save();
            }
        }
    }
    

}