1. Go to this page and download the library: Download creocoder/yii2-taggable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
creocoder / yii2-taggable example snippets
$this->createTable('{{%post}}', [
'id' => Schema::TYPE_PK,
'title' => Schema::TYPE_STRING . ' NOT NULL',
'body' => Schema::TYPE_TEXT . ' NOT NULL',
]);
use creocoder\taggable\TaggableBehavior;
/**
* ...
* @property string $tagValues
*/
class Post extends \yii\db\ActiveRecord
{
public function behaviors()
{
return [
'taggable' => [
'class' => TaggableBehavior::className(),
// 'tagValuesAsArray' => false,
// 'tagRelation' => 'tags',
// 'tagValueAttribute' => 'name',
// 'tagFrequencyAttribute' => 'frequency',
],
];
}
public function rules()
{
return [
//...
['tagValues', 'safe'],
];
}
public function transactions()
{
return [
self::SCENARIO_DEFAULT => self::OP_ALL,
];
}
public static function find()
{
return new PostQuery(get_called_class());
}
public function getTags()
{
return $this->hasMany(Tag::className(), ['id' => 'tag_id'])
->viaTable('{{%post_tag_assn}}', ['post_id' => 'id']);
}
}
use creocoder\taggable\TaggableQueryBehavior;
class PostQuery extends \yii\db\ActiveQuery
{
public function behaviors()
{
return [
TaggableQueryBehavior::className(),
];
}
}
$post = new Post();
// through string
$post->tagValues = 'foo, bar, baz';
// through array
$post->tagValues = ['foo', 'bar', 'baz'];
$post = Post::findOne(1);
// through string
$post->addTagValues('bar, baz');
// through array
$post->addTagValues(['bar', 'baz']);
$post = Post::findOne(1);
// through string
$post->removeTagValues('bar, baz');
// through array
$post->removeTagValues(['bar', 'baz']);