Я все еще думаю о лучшем способе работы с тегами в Symfony.Я посмотрел на FPNTagBundle, но я не нашел простого способа вставить это в формы CRUD.
Я также нашел http://xoxco.com/clickable/jquery-tags-input, который дал бы идеальный виджет.Поскольку он вводит и выводит разделенные запятыми строки, я подумал, что могу просто определить виртуальное поле в моей модели, которое отображает массив объектов тегов в виде такого списка.
public function addTag(\Wein\StoreBundle\Entity\Tag $tag)
{
$this->tag[] = $tag;
$this->makeTagFieldFromTags();
}
public function setTagField($tagField)
{
$this->tagField = $tagField;
$this->makeTagsFromTagField();
}
public function makeTagsFromTagField()
{
$tags=explode(',', $this->tagField);
$tagObjects=array();
$em = $this->getDoctrine()->getEntityManager();
foreach($tags as $tag) {
$tag=trim($tag);
$tagObject = **???**;
$tagObjects[]=$tagObject;
}
$this->tag=$tagObjects;
}
public function makeTagFieldFromTags()
{
$tags=array();
foreach($this->tag as $tag) {
$tags[]=$tag->__toString();
}
$this->tagField = implode(',', $tags);
}
Я мог бы просто использовать элемент формы в этом поле.К сожалению, я не вижу способа перевести строки в объекты-теги внутри объекта, поскольку у меня нет доступа к менеджеру объектов.
Так что же такое чистый способ?