This Laravel Nova package allows you to manage media and media fields.
php: >=8.0
laravel/nova: ^4.0
- Media Hub UI in separate view
- Media Hub field for selecting single/multiple media
- Image optimization and multiple conversions support
- File naming and path making customization
- Dark mode support
- A lot configuration options
Install the package in a Laravel Nova project via Composer and run migrations:
# Install nova-media-hub
composer require outl1ne/nova-media-hub
# Run migrations
php artisan migrate
Register the tool with Nova in the tools()
method of the NovaServiceProvider
:
// in app/Providers/NovaServiceProvider.php
public function tools()
{
return [
// ...
new \Outl1ne\NovaMediaHub\MediaHub
];
}
This package provides a field MediaHubField
which allows you to select media. This saves the media as a JSON array into the database.
Example usage:
use Outl1ne\NovaMediaHub\Nova\Fields\MediaHubField;
// ...
MediaHubField::make('Media', 'media')
->defaultCollection('products') // Define the default collection the "Choose media" modal shows
->multiple(), // Define whether multiple media can be selected
The config file can be published using the following command:
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="config"
The translation file(s) can be published by using the following command:
php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="translations"
Nova Media Hub is open-sourced software licensed under the MIT license.