Laravel EnsoLaravel Enso
Guide
Back End
Front End
GitHub
Guide
Back End
Front End
GitHub
  • Back End

    • Action Logger
    • Addresses
    • Algolia
    • Algolia Webshop
    • API
    • Audits
    • Avatars
    • Cache Chain
    • Calendar
    • Cargo Partner
    • Categories
    • Charts
    • CI/CD
    • Cli
    • CNP Validator
    • Comments
    • Commercial
    • Companies
    • Core
    • Countries
    • Currencies
    • Data Export
    • Data Import
    • Discounts
    • Documents
    • Dynamic Methods
    • EAV
    • Emag
    • Enums
    • Excel
    • Facebook
    • Files
    • Filters
    • Financials
    • Forms
    • Frisbo
    • Google
    • Helpers
    • Holidays
    • How-to
    • Image Transformer
    • Impersonate
    • Interactions
    • Inventory
    • IO
    • Localisation
    • Lockable Models
    • Logs
    • Measurement Units
    • Meili Search
    • Meili Search Webshop
    • Menus
    • Migrator
    • Monitored Emails
    • Notifications
    • Packaging Units
    • PDF
    • People
    • Permissions
    • Product Eav
    • Product Lots
    • Products
    • Questionnaires
    • Rememberable
    • Roles
    • Sale Channels
    • Searchable
    • Select
    • Sentry
    • Services
    • Smart Bill
    • Sms Advert
    • Stripe
    • Tables
    • Tasks
    • Teams
    • Ticketing
    • Track Who
    • Tutorials
    • Typesense
    • Typesense Webshop
    • Unit Conversion
    • Upgrade
    • UPS
    • User Groups
    • Users
    • Versions
    • Virtual Call Center
    • Vouchers
    • Webshop
    • Webshop Commercial

Select

LicenseStableDownloadsPHPIssuesMerge 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:

  • laravel-enso/filters ↗
  • laravel-enso/helpers ↗

Companion frontend package:

  • @enso-ui/select ↗

Contributions

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

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

Edit this page on GitHub
Last Updated: 4/20/2026, 3:08:31 PM
Prev
Searchable
Next
Sentry