# Data Casts

This package provides a number of casts to help interface media files to native array or object types. Casts also allows you to use media files at attribute level rather than associating them to your entire model. The stored value in your database column is the file ID or an array on IDs.

Ascribing the MOIREI\MediaLibrary\Traits\InteractsWithMedia trait will automatically detect and associate files to the model.

Battery-included Casts

Cast Description
MOIREI\MediaLibrary\Casts\MediaFile Casts files to view/frontend ready key-value array. See File.
MOIREI\MediaLibrary\Casts\MediaFiles An array of MOIREI\MediaLibrary\Casts\MediaFile
MOIREI\MediaLibrary\Casts\MediaImage Key-value array of display image links of the file. Empty for non-image files with no thumbnail generated
MOIREI\MediaLibrary\Casts\MediaImages An array of MOIREI\MediaLibrary\Casts\MediaImage
MOIREI\MediaLibrary\Casts\MediaObjectImage An object version of MOIREI\MediaLibrary\Casts\MediaImage
MOIREI\MediaLibrary\Casts\MediaObjectImages An array of MOIREI\MediaLibrary\Casts\MediaObjectImage
MOIREI\MediaLibrary\Casts\MediaUrl An array containing a url key to the file. A temporal or signed url is returned for private files.
MOIREI\MediaLibrary\Casts\MediaUrls An array of MOIREI\MediaLibrary\Casts\MediaUrl

# Accessors

You can further defined the following to help access your model's media contents.

public function getImagesAttribute()
  return $this->media()->ofType('image')->get();

public function getAudiosAttribute()
  return $this->media()->ofType('audio')->get();

public function getVideosAttribute()
  return $this->media()->ofType('video')->get();