Filament Plugins

Purchase

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

app/Providers/Filament/YourPanelProvider.php
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:

app/Providers/Filament/YourPanelProvider.php
$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:

app/Providers/Filament/YourPanelProvider.php
$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.

© FilamentPlugins.com ✦ 2022 – 2026
PrivacyTerms & Conditions
All rights reserved.