Skip to content

Searching facility to recursively search relations defined in Laravel5 Eloquent ORM

Notifications You must be signed in to change notification settings

AssembleOnline/eloquentsearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Eloquent Model Searcher for Laravel 5

Installation

Add this line to your providers array:

Assemble\EloquentSearch\EloquentSearchServiceProvider::class,

Add this line to your aliases array:

'EloquentSearch' => Assemble\EloquentSearch\Facades\EloquentSearcher::class,

You will need to run php artisan vendor:publish to publish the config file to your instalation, Once run, you can find it in config/eloquenet_search.php. This config file is used to controll which models are used to search/return entities of.

Configuration

The config file can be found in the laravel config folder at config/eloquent_search.php, here you can define the classes related to your models as below.

return [
	'search_models' => [
		/* 
			Add your searchable eloquent models here, this is an example of user model usage.

			If you have your models sitting in the app root as default, something like this should find them.
			
				'user' => User::class,
	    	
	    	Otherwise if you have them elsewhere or the application cant seem to find them, try prefix them as such.
	    
	    		'user' => App\Models\User::class,

	    */
	   	
	    'user' => User::class,

	]
];

Usage

To make use of the search functionality, you will need to implement a $searchable property on your models to detail which fields and relations are searchable.

/*
*   Searchable Fields
*/
public $searchable = [
    'name', 'user_id', // fields
    'user', 'tags', // relations
];

You can also implement the method 'isSearchable' in your models for the searcher to determine if it is allowed to search/return that model.

public function isSearchable(){
	// Do your checks to determine if the model may be searched by the user
	return true;
}

This feature lets you restrict user searches to only the models they are allowed to see.

About

Searching facility to recursively search relations defined in Laravel5 Eloquent ORM

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages