Программирование, веб-кодинг, Расширения, виджеты

Добавление тегов к записям. Yii2-taggable

Добавление тегов к записям. Yii2-taggable

Воспользуемся поведением https://github.com/2amigos/yii2-taggable-behavior.

Делаем всё согласно описанию, но так как в моей модели записей блога поле для тегов называется 'tags', то в поведении явно прописываю это в параметре 'attribute' (т.к. по-умолчанию это расширение поведения тегов работает для атрибута tagNames)

'tags' => [
    'class' => Taggable::className(),
    'attribute' => 'tags',
]

Также устанавливаю Selectize Widget.

В виде хочу выводить не просто метки через запятую, а ссылки на статьи с этой меткой. Для этого в виде пишу:

<?php if(!empty($model->tags)) { ?> / Метки: <?= implode(', ', $model->tagLinks) ?><?php } ?>

а в модели Blog

<span>public function getTagLinks()
{
    $selectedtagnames=array();
    foreach(self::string2array($this->tags) as $tag) {
        $selectedtagnames[]=Html::a($tag, array('blog/index', 'tag'=>$tag), $linkOptions=array('class'=>'categories', 'title'=>$tag));
    }
    return $selectedtagnames;
}</span>

Функция string2array() в этой же модели уже была

<span>public static function string2array($tags)
{
    return preg_split('/\s*,\s*/',trim($tags),-1,PREG_SPLIT_NO_EMPTY);
}</span>



Читайте также