yii2-search

This is component for searching in the Active Record models for Yii2 Framework.

BSD-3-CLAUSE License

Stars
30
Committers
3

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.