yii2-search
yii2-search copied to clipboard
This is component for searching in the Active Record models for Yii2 Framework.
Search in Active Record models for Yii2
This is component for searching in the Active Record models for Yii2 Framework.
Documentation is at docs/guide/README.md.
Installation
Install package
The preferred way to install this extension is through composer.
Either run
$ composer require vintage/yii2-search
or add
"vintage/yii2-search": "~2.0"
to the require section of your composer.json.
Usage
Implement \vintage\search\interfaces\SearchInterface interface in Active Record models
/**
* Article search model.
*
* @property integer $id
* @property string $title
* @property string $short_description
* @property string $content
*/
class ArticleSearch extends ActiveRecord implements \vintage\search\interfaces\SearchInterface
{
/**
* @inheritdoc
*/
public function getSearchTitle()
{
return $this->title;
}
/**
* @inheritdoc
*/
public function getSearchDescription()
{
return $this->short_description;
}
/**
* @inheritdoc
*/
public function getSearchUrl()
{
return Url::toRoute(['/news/default/index', 'id' => $this->id]);
}
/**
* @inheritdoc
*/
public function getSearchFields()
{
return [
'title',
'short_description',
'content',
];
}
}
Call method of search component with a query
/* @var \vintage\search\models\SearchResult[] $result */
$result = Yii::$app->get('searcher')->search('some query here');
this method returns array of \vintage\search\models\SearchResult objects.
Tests
You can run tests with composer command
$ composer test
or using following command
$ codecept build && codecept run
Contributing
For information about contributing please read CONTRIBUTING.md.
Licence
This project is released under the terms of the BSD-3-Clause license.
