Getting started
Library
Components
Integrations
Multiple drivers
You can register additional drivers alongside the primary one using the ->additionalDrivers() method. When multiple drivers are registered, the Media Library shows a selector so users can switch between them.
This is useful when you want to combine different storage backends in the same panel – for example, a MediaLibraryItemDriver for managed uploads and a FilesystemStorageDriver for browsing existing files on disk.
Registering additional drivers
use RalphJSmit\Filament\Explore\Drivers\FilesystemStorageDriver;
use RalphJSmit\Filament\MediaLibrary\Drivers\MediaLibraryItemDriver;
$plugin
->driver(MediaLibraryItemDriver::class, function (MediaLibraryItemDriver $driver) {
$driver->label('Media Library');
})
->additionalDrivers([
FilesystemStorageDriver::class,
]);
Identifying drivers
When using multiple drivers, you can assign a key and label to each driver. The label is displayed in the UI selector, and the key is used internally to identify the driver:
$plugin
->driver(MediaLibraryItemDriver::class, function (MediaLibraryItemDriver $driver) {
$driver
->key('media-library')
->label('Media Library');
})
->additionalDrivers([
function () {
$driver = app(FilesystemStorageDriver::class);
$driver
->key('disk')
->label('Files on disk')
->disk('s3');
return $driver;
},
]);
Configuring additional drivers
Each additional driver can be configured with a closure, just like the primary driver:
$plugin->additionalDrivers([
function () {
$driver = app(FilesystemStorageDriver::class);
$driver
->key('assets')
->label('Assets')
->disk('public')
->directory('assets');
return $driver;
},
]);
All driver-level configuration methods work on additional drivers – authorization, display mode, actions, file info, and so on.