master
glmdev 8 years ago
parent 1553f3116a
commit ff61692809

@ -9,6 +9,12 @@ Element Search is available on composer. To install, simply run:
composer require element/search
```
Then, add the following line to the `$providers` array in the `config/app.php` file:
``` php
Element\Search\SearchServiceProvider::class,
```
## Use
Making your models searchable is easy. The models simply need to implement the ```php Element\Search\SearchableContract ```
@ -65,5 +71,5 @@ any string you wish to search for. Additionally, you don't have to worry about r
or capital letters from your search string, the function does it automatically.
The search function, whether in the model, or called from the facade, returns the models in the form
of a \Laravel\Database\Eloquent\Collection collection. This allows you to perform all the usual
of a \Laravel\Database\Eloquent\Collection` collection. This allows you to perform all the usual
functions you would be able to perform on a database query.

@ -10,8 +10,16 @@ namespace Element\Search;
class Search {
/* @var $model \Illuminate\Database\Eloquent\Model */
/**
* Searches the collection of given $model type for
* $string and returns the results.
*
* @param SearchableContract $model
* @param $string
* @return \Illuminate\Support\Collection
*/
public function search( SearchableContract $model, $string ){
/* @var $model \Illuminate\Database\Eloquent\Model */
$query = $this->formatQuery( $string );
$models = $model->all();
$returns = [];
@ -114,6 +122,13 @@ class Search {
return collect( $returns );
}
/**
* Formats the string into an array of non-punctuated,
* non-duplicated, lowercase words.
*
* @param $string
* @return array
*/
public function formatQuery( $string ){
$words = explode(' ', $string);
$return = [];

Loading…
Cancel
Save