Server-side option and typeahead builders for Laravel Enso

Maintainers

Package info

github.com/laravel-enso/select

pkg:composer/laravel-enso/select

Statistics

Installs: 59 939

Dependents: 23

Suggesters: 0

Stars: 26

Open Issues: 2

5.1.3 2026-04-21 15:27 UTC

README

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!