jzpeepz/eloquent-search

Simple searching of all the Eloquent models in your project

0.6 2020-12-17 22:07 UTC

This package is auto-updated.

Last update: 2024-10-18 07:02:02 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention of what PSRs you support to avoid any confusion with users and contributors.

Installation

You can install the package via composer:

composer require jzpeepz/eloquent-search

Publish the config file:

php artisan vendor:publish --tag=eloquent-search-config

Publish the views so you can customize:

php artisan vendor:publish --tag=eloquent-search-views

You might need to copy this route to your routes file if you need to add middleware or customize the search uri:

Route::get('/search', ['as' => 'eloquent-search', 'uses' => '\Jzpeepz\EloquentSearch\Http\Controllers\SearchController@index']);

Include the search box in your views:

@include('eloquent-search::search-box')

Usage

Getting Started

To make a model searchable, it needs to use the App\Traits\Searchable trait.

All searchable models must also be included in the config/eloquent-search.php file. This allows search abstracts to be generated with the command below.

NOTE: An exception will be thrown if any searchable models do not have url() or getSearchDescription() methods. See the customization section for more on those methods.

Initializing Search

Run the following command to initialize search abstracts for all searchable models.

php artisan search:init

Customization

What Gets Searched

By default, all attributes in the model will get lumped into the abstract that is searched.

To customize what gets searched, override the getSearchAbstract() method to return a string that should be searched.

Search Results

Description (required)

Add a getSearchDescription() method to your model that returns the description you would like.

URL (required)

Add a url() method to your model. This provides the URL that is linked to in search.

Title

By default, Searchable will attempt to determine a good title for the result.

To customize, override the getSearchTitle() method on your model.

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email jonathan@flex360.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.