bessamu/ajax-multiselect-nova-field
A Laravel Nova field that provides an AJAX-powered multi-select input with searchable, dynamically loaded options. Easily attach multiple related models through a clean, responsive interface, with flexible configuration and simple integration into Nova resources.
BelongsToMany relations over large tables (tags, categories, users, products, permissions) can ship a usable picker now, unblocking workflow features that were previously deferred because "the dropdown times out."Adopt or prototype when all of the following hold:
BelongsToMany (or similar multi-attach) relationship where the related table is large enough that loading all options is slow, memory-heavy, or unusable in a dropdown — roughly thousands of rows or more, or a table with an expensive query.composer.json constraints and test in staging, since Nova's field API and Vue stack have broken community fields across majors.Look elsewhere when:
BelongsToMany select or a simple searchable select is lower risk and zero new surface.For executives (one paragraph): We have a small, cheap opportunity to improve our internal admin tools. Today, staff working with records that link to many other records (tags, categories, users, products) face slow or unusable dropdowns, or fall back to manual workarounds. A free, open-source add-on for our existing Nova admin panel replaces that dropdown with a search-as-you-type picker, so staff can find and attach multiple records quickly. The cost is a short integration task, not a new system. The main caveat is maintenance: it's a small community project with a single maintainer and no other known users, so we should treat it as a prototype, pin the version, and be prepared to fork or replace it. Recommendation: time-boxed spike, then a go/no-go decision based on measured admin task time.
For engineering (the practical case): This is a Nova field that adds an AJAX-backed multiselect for BelongsToMany relations — remote option loading with a configurable search endpoint and query callback, so we never hydrate the full related table into the browser. It removes the need to write and maintain a custom Vue field for what is a recurring admin pattern. Risks are explicit and manageable: low adoption (5 stars, 0 dependents), one maintainer, last release mid-2024 — so we pin the version, read the source, own the endpoint's authorization and filtering in our callback, and verify Nova version compatibility in staging. Integration is measured in hours; a fork is available to us under MIT if upstream goes quiet. Ask: a one-day spike on our largest BelongsToMany relation, with success measured as a drop in admin task time and no regression in permissions handling.
How can I help you explore Laravel packages today?