kfriars / searchable-select
A Laravel Nova field.
Installs: 1 134
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 2
Open Issues: 0
Language:Vue
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-10-28 17:53:45 UTC
README
⚠️ This is an archive for the package https://github.com/slovenianGooner/nova-searchable-select. No maintenance will be done on this package. ⚠️
Laravel Nova Searchable Select Field
A Searchable Select Field for Laravel Nova. This field joins the functionalities of the BelongsTo
field
and Select
field.
Basically a regular Select field where you specify the resource you want to search for and no "relationships" are needed. This means, you can use it also in additional JSON fields in your database.
Installation
Composer
composer require kfriars/searchable-select
Usage
Just like the regular select field, but instead of the options
method you provide the resource
method
with your resource name.
use Kfriars\SearchableSelect\SearchableSelect; ... SearchableSelect::make('Content', 'content_id')->resource("contents") ... or SearchableSelect::make("Content", "content_id")->resource(\App\Nova\Content::class)
You can pass all the regular options like:
SearchableSelect::make('Content', 'content_id') ->resource("contents") ->help("Help text") ->displayUsingLabels() ->nullable()
But also three additional options:
SearchableSelect::make('Content', 'content_id') ->resource("contents") ->label("custom_label_field") // Defaults to the static $title attribute of the resource class ->labelPrefix("custom_prefix_field") // Allows you to prefix the label field with one other field, i.e. "code":"label" ->value("custom_value_field") // Defaults to 'id'
You can now also choose the multiple option. Needs a text
or json
field in the database.
SearchableSelect::make('Content', 'content_id') ->resource("contents") ->multiple() ->displayUsingLabels() ->nullable()
Another option is to define the maximum number of items shown in the search. (Default: 20)
SearchableSelect::make("Content", "content_id") ->resource("contents") ->max(10)
You can use the base model's search method instead of the Nova resource's search method with useBaseSearch()
.
SearchableSelect::make('Content', 'content_id') ->resource("contents") ->useBaseSearch()