vintage/yii2-search

Search in Active Record models for Yii2

Installs: 4 509

Dependents: 1

Suggesters: 0

Security: 0

Stars: 29

Watchers: 4

Forks: 6

Open Issues: 1

Type:yii2-extension

v2.0.0 2018-02-09 22:50 UTC

This package is not auto-updated.

Last update: 2024-11-10 02:19:45 UTC


README

Search in Active Record models for Yii2

Build Status Scrutinizer Code Quality Total Downloads Latest Stable Version Latest Unstable Version

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

License

This project is released under the terms of the BSD-3-Clause license.