Реализую теги на сайте и вот наткнулся на проблему (точнее вопрос), которую хотелось бы уточнить.
Есть ентити Post в котором есть вот такая штука:
public function getTags()
{
return $this->tags ?: $this->tags = new ArrayCollection();
}
Тоесть все теги к посту попадают в коллекцию.
Теперь у меня задача показать теги на сайте, например вот так:
Теги: Вася, Друзья, Семья
Собственно получить коллекцию например в контроллере можно вот так:
foreach ($entity->getTags()->getValues() as $tag) {
print_r($tag->getName());
}
в виде этот же код будет выглядеть вот так:
<div class="news-tags">
{% if entity.tags.values %}
<span class="font-bold" >{{ 'news.post.tags'|trans({}, 'NewsBundle') }}:</span>
{% else %}
{{ 'news.post.no_tags'|trans({}, 'NewsBundle') }}
{% endif %}
<ul class="tags-list">
{% if entity.tags.values %}
{% for tag in entity.tags.values %}
<li><a href="{{ url('news_tag', {'tag':tag.name} )}}">{{ tag.name }}</a></li>
{% endfor %}
{% endif %}
</ul>
</div>
Теперь собственно основная суть моего вопроса,
как и где провести какие-либо манипуляции ну в данном случае с коллекциями ?
Ну например заморозить или удалить какой-то тег и отдать все остальные. Или как в примере, расставить запятые везде кроме последнего элемента. Тоесть в yii я бы в модели создал еще 1 метод, который бы привел в порядок данные и вернул обычный массив, который бы я передал в вид через контроллер. Как поступить тут (в симфони)?