'array', 'nutritional_values' => 'array', ]; /** * The Laravel disk name * * @var string */ protected $disk = 'inco'; protected $imagesPath = 'images'; /** * The files to ignore * * @var array */ protected $ignoreFiles = [ '.gitignore', '.gitkeep' ]; /** * retrieve a collection of medias */ public function getMediasAttribute() { /** @var Filesystem */ $disk = $this->getDisk(); $files = $disk->files($this->imagesPath); $collFiles = new Collection(); // /** @var File */ foreach ($files as $file) { $pi = \pathinfo($file, \PATHINFO_BASENAME); if (in_array($pi, $this->ignoreFiles)) { continue; } if (!in_array($pi, array($this->id))) { continue; } $image = base64_encode($disk->get($file)); $element = array( "filename" => $pi, "imgdata" => $image ); $collFiles->add($element); } return $collFiles; } /** * Get the concerned disk * * @return Filesystem */ protected function getDisk(): Filesystem { return Storage::disk($this->disk); } public function getNiceStringAttribute() { return sprintf('%s - %s', $this->id, $this->descriptif); } }