If your $media instance concerns an image, you can render it directly in a Blade view.
Here is the original image: {{ $media }}
This will output an img tag with a src attribute that contains an url to the media.
You can also render an img to a conversion.
Here is the converted image: {{ $media->conversion('thumb') }}
You can also use this shorthand:
Here is the converted image: {{ $media('thumb') }}
You can add extra attributes by calling attributes.
Here is the image with some attributes: {{ $media->img()->attributes(['class' => 'my-class']) }}
You may also pass an array of classes to the class attribute. This way, you can conditionally add classes where the key is the class name and the value is a boolean indicating whether the class should be added. Elements with a numeric key will always be added. Under the hood, this uses Laravel Arr::toCssClasses() helper method.
Here is the image with some classes: {{ $media->img()->attributes(['class' => [
    'my-class',
    'my-other-class' => true,
    'my-third-class' => false,
]]) }}
You may also pass an array of styles to the style attribute. This way, you can conditionally add styles where the key is the style name and the value is a boolean indicating whether the style should be added. Elements with a numeric key will always be added. Under the hood, this uses Laravel Arr::toCssStyles() helper method.
Here is the image with some styles: {{ $media->img()->attributes(['style' => [
    'my-style: value',
    'my-other-style: value',
    'my-third-style: value' => true,
]]) }}
If you want defer loading offscreen images you can use the lazy function.
Lazy loading this one: {{ $media()->lazy() }}
##Customizing the views
You can customize the rendered output even further by publishing the views with:
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="media-library-views"
The following files will be published in the resources/views/vendor/media-library directory:
- image.blade.php: will be used to render media without responsive images
- responsiveImage.blade.php: will be used to render media with responsive images without a tiny placeholder
- responsiveImageWithPlaceholder.blade.php: will be used to render media with responsive images including a tiny placeholder.
You may modify these published views to your heart's content.