Skip to content

laravel-enso/searchable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Searchable

License Stable Downloads PHP Issues Merge Requests

Description

Searchable provides the global command-palette style search registry used by Laravel Enso.

The package exposes a single search endpoint, a facade-backed registry for searchable models, and a finder service that resolves results according to configured attributes, scopes, permissions, and optional Scout providers.

It is intended for Enso applications that need cross-module quick search with permission-aware routes and grouped results.

Installation

Install the package:

composer require laravel-enso/searchable

Run the package migrations:

php artisan migrate

Optional publishes:

php artisan vendor:publish --tag=searchable-config
php artisan vendor:publish --tag=searchable-factories

Features

  • Global api/core/searchable/index endpoint.
  • Facade-backed searchable model registry.
  • Finder service that supports local query matching or Scout search providers.
  • Permission-filtered route actions based on the authenticated user's role.
  • Support for route params, custom labels, scopes, permission groups, and nested relation attributes.

Usage

Register searchable models from any package by extending the package search service provider:

public $register = [
    Product::class => [
        'group' => 'Product',
        'attributes' => ['name', 'internal_code', 'part_number'],
        'label' => 'internal_code',
        'permissionGroup' => 'products',
    ],
];

The finder returns grouped results with resolved route params and only the route actions the current user is allowed to execute.

API

HTTP routes

  • GET api/core/searchable/index

Core services

  • LaravelEnso\\Searchable\\Services\\Search
  • LaravelEnso\\Searchable\\Services\\Finder

Behavior:

  • stores registered searchable model definitions
  • executes Scout search when searchProvider is configured
  • otherwise executes filter-based database search
  • filters available actions by role permissions

Depends On

Required Enso packages:

Contributions

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

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

Packages

 
 
 

Contributors

Languages