Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Multiselect Two Sides

Filament Multiselect Two Sides Laravel Package

lucasgiovanny/filament-multiselect-two-sides

A Filament form component that adds a two-sided multiselect field, letting users move options between available and selected lists with search and transfer controls for cleaner Laravel admin forms.

View on GitHub
Deep Wiki
Context7

Filament Multiselect Two Sides is a form field for Filament that replaces the standard multiselect with a two-panel interface: available options on one side, selected options on the other. Users move items with buttons, double-click, or drag and drop, making large option sets easier to manage than a cramped dropdown.

  • Two-panel layout with configurable labels, icons, and colors
  • Live search in both panels for quickly filtering long lists
  • Drag-and-drop plus button controls for moving and reordering selections
  • Works with BelongsToMany relationships and static option arrays
  • Fully customizable: field labels, button text, height, and search placeholders
Frequently asked questions about Filament Multiselect Two Sides
How do I install filament-multiselect-two-sides in a Laravel Filament app?
Install it with Composer using composer require lucasgiovanny/filament-multiselect-two-sides, then publish or build the package assets with php artisan filament:assets or the package's vendor:publish step. The field is opt-in per form, so you add it to a Filament schema array the same way you would add Select::make(). It assumes Laravel, Livewire, and Filament v3, with Alpine.js handling the front-end transfer behavior.
Which Filament versions does filament-multiselect-two-sides support?
The package is built for Filament v3, and its last release date of 2024-03-13 places it firmly in that window. A Filament v4-compatible release is not confirmed, so pin your Filament minor version in composer.json and test upgrades deliberately. If you need v4 support, treat it as a spike rather than an assumed drop-in.
Does filament-multiselect-two-sides support BelongsToMany relationships?
The field's state shape is the key integration question: it is commonly used with plain array state, which suits JSON or pivot-backed columns. Relationship support via relationship() for BelongsToMany is not confirmed in the package evaluation, so verify it in a small spike before relying on it. If it is array-only, add a saveRelationshipsUsing closure or a pivot sync hook to bridge the gap.
Can I use the two-sided multiselect with a JSON column in Laravel?
Yes, if the field binds to a plain array, which is the natural fit for a JSON or array-cast column. Use Filament's standard dehydrate state handling and cast the column as array or json in your Eloquent model. Confirm the documented dehydrate path in a test so the selected IDs round-trip correctly on create and edit.
Is there a Filament v4 compatible release of this package?
No v4-compatible release is confirmed; the last release was in March 2024 and the package sits in the Filament v3 window. Filament major versions have historically changed form-field and asset-registration APIs, so an upgrade path is the largest scheduling risk. Wrap the field in your own class so a future fork or replacement has a single swap point.
How do I publish the assets for filament-multiselect-two-sides in production and CI?
Because the component ships Alpine.js behavior, you must run the Filament asset publish or build step in every environment, including CI and container builds. Missing assets are a routine deployment bug for packages like this, so add the step to your deploy checklist and Dockerfile. Verify the field renders and moves options after a fresh build, not just in local development.
Does the two-sided multiselect work inside Repeater, Builder, and modal-wrapped actions?
It registers as a standard Filament Field subclass, so it composes inside schema arrays in resources, custom pages, relation managers, and action modals. The risk is Alpine component instances being cloned and destroyed inside Repeater, Builder, and modal contexts. Test those containers explicitly, because a field that works on a simple form can still lose state when its parent is duplicated.
Is the option list searchable or async for large datasets?
Searchable, paginated, or async option loading is not confirmed, so assume the candidate list is fully server-rendered until you test otherwise. That is likely fine for hundreds of options such as roles or tags, but the practical ceiling for tens of thousands is unknown. For very large sets, benchmark it or use a searchable Filament Select instead.
How are validation, required state, and accessibility handled in a two-list control?
The field participates in Filament's normal form lifecycle, including validation rules, dehydrateStateUsing, and afterStateUpdated hooks, so required and validation messages render through Filament's standard machinery. Test the messages against the two-list layout, because a dual-list control can display errors awkwardly. Keyboard and screen-reader behavior is also worth checking; WCAG viability out of the box is not confirmed and may need remediation.
Is filament-multiselect-two-sides actively maintained, and should I depend on it directly or wrap it?
It has one maintainer, roughly 68 stars, and zero Packagist dependents, so there is little third-party production validation and you would be an early adopter. The safest approach is to require the package but expose it through your own App\Filament\Fields\TransferSelect wrapper, keeping the upstream namespace out of dozens of resource files. That costs about half a day and gives you a clean replacement point if you later fork it or move to a native Filament solution.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo