You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Laravel Selectable is a powerful package that simplifies the process of generating HTML select options from Laravel
collections. With its flexible and intuitive syntax, you can easily create customized select options without the need
for
additional traits or class extensions.
Features
Generate select options from Laravel collections with ease
Customize label and value fields using strings or closures
Specify selected and disabled options
Add data attributes and classes to options
Support for grouping options
Convert collections to an array of selectable items for AJAX responses or SPAs
Utilize the power Laravel's collections for more advanced filtering and sorting
This will generate a select dropdown with options for all users, using the name field as the label and the id field as
the value.
2. Inline Customization
">
This will generate a select dropdown with options for all users, using the email field as the label and the uuid
field
as the value. The selected option will be the user with the uuid 6490132934f22.
{{$user->email}}
...
">
Method parameters
label: The name of the field to be used as the label for the option. If a closure is provided, the result of the
closure will be used as the label. Default is name.
value: The name of the field to be used as the value for the option. If a closure is provided, the result of the
closure will be used as the value. Default is id.
selected: The value of the item to be used as the selected option. Can be value, array of values or closure.
disabled: The value of the item to be used as the disabled option. Can be value, array of values or closure.
3. Advanced Usage
This package allows building of select options from a Selectable object using method chaining.
The method toSelectable() is used to convert the collection into a Selectable object. The Selectable object has
several methods that allow you to customize the options and their properties. The toSelectOptions method is used to
convert the Selectable object into html select options.
This will generate a multi-select dropdown with options for all users, using the id field as the value, and a
combination of the first_name and last_name fields as the label. Options with IDs 2 and 3 will be selected by
default,
and options with an 'inactive' status will be disabled. A 'data-hidden' attribute will be added to options with
a status
other than 'active', and a custom class 'form-option custom' will be applied to all options.
Available methods
withLabel(string|Closure $label): This method allows you to customize the label for each option. A string will be
used as the collection field from which the label will be generated, while a Closure will be used to generate the
label.
withValue(string|Closure $value): This method allows you to customize the value for each option. A string will be
used as the collection field from which the value will be generated, while a Closure will be used to generate the
value.
withSelected(mixed|Closure $selected): This method allows you to customize the selected options. Can be
a string, int, an array of string/int, a model or a Closure that returns a boolean value.
withDisabled(mixed|Closure $disabled): This method allows you to customize the disabled options. Can be
a string, int, an array of string/int, a model or a Closure that returns a boolean value.
withDataAttribute(string|Closure $attribute, mixed|Closure $value): This method allows you to add a data attribute to each
option. The first parameter can be a string or a Closure that returns a string which will be attached as data-{attribute}="{value}" to the option. The second parameter can be any type convertable to a string or a Closure that returns a string.
withId(string|Closure $id): This method allows you to add an id attribute to each option. The value can be a Closure that returns a unique string for each option.
withClass(string|array|Closure $class): This method allows you to add a class to each option. The value can be a string or an array of string or a Closure that returns a string.
toSelectItems(): This method converts the selectable collection to an array of selectable items. Useful for Ajax
responses or SPAs.
toSelectOptions(): This method converts the selectable collection to an HTML select options string.
Some of the methods from Illuminate\Support\Collection are also available including groupBy().
Note: Writing queries within blade templates is not recommended. This is only for simplifying
demonstration
Non-object Array Collections
You can work with collections of non-object arrays both flat and associative
This will convert the collection of users into an array of selectable items, which can be useful for AJAX responses or
Single Page Applications (SPAs).