Skip to content

Latest commit

 

History

295 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Select

License Stable Downloads PHP Issues Merge Requests

Description

Select provides the server-side option and typeahead builders used by Laravel Enso select controls.

The package ships traits for controller-style endpoints and a configurable Options response service that supports selected values, search queries, plain filters, pivot filters, resources, appended attributes, and nested relation attributes.

It can be used inside or outside Enso when a Laravel application needs consistent server-side select data feeds.

Installation

Install the package:

composer require laravel-enso/select

Publish the configuration if you want to change defaults such as trackBy, searchMode, or query attributes:

php artisan vendor:publish --tag=select-config

Features

  • OptionsBuilder trait for standard select endpoints.
  • TypeaheadBuilder trait for typeahead payload conversion.
  • Options service implementing Responsable.
  • Search across local attributes and nested relation attributes.
  • Support for selected values, pagination limit, params, pivot params, custom resources, and model appends.

Usage

Typical options endpoint:

class Options
{
    use OptionsBuilder;

    protected string $model = Company::class;
    protected array $queryAttributes = ['name', 'person.name'];
}

Typical typeahead endpoint:

class Typeahead
{
    use TypeaheadBuilder;

    protected string $model = Company::class;
}

Supported request inputs include:

  • value
  • query
  • paginate
  • trackBy
  • searchMode
  • params
  • pivotParams

API

Builder traits

  • LaravelEnso\\Select\\Traits\\OptionsBuilder
  • LaravelEnso\\Select\\Traits\\TypeaheadBuilder

Response service

  • LaravelEnso\\Select\\Services\\Options

Behavior:

  • merges selected values ahead of fresh results
  • applies direct and pivot relation filters
  • performs filter-based search through laravel-enso/filters
  • sorts by the first query attribute when possible
  • returns a collection or an API resource collection

Depends On

Required Enso packages:

Companion frontend package:

Contributions

are welcome. Pull requests are great, but issues are good too.

Thank you to all the people who already contributed to Enso!

About

Bulma styled single and multi-select component with a server-side option list builder

Topics

Resources

Stars

26 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages