diff --git a/README.md b/README.md index 29edc3a..fc76943 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/src/Search.php b/src/Search.php index 1667012..776212d 100644 --- a/src/Search.php +++ b/src/Search.php @@ -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 = [];