File: D:/HostingSpaces/SBogers93/fitale.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();
}
}
}
}