У меня есть система тегов, установленная как OneToMany ManyToOne OneToMany
, например:
ПУНКТ OneToMany
в TAGS
ПОВЕДЕНИЕ ManyToOne
в TAG и ПУНКТ
TAG OneToMany
в TAGS
Поле формы ITEM для этого отношения EntityType
из TAG
, поэтому у меня есть список доступных тегов из базы данных на выбор
Когда я сохраняю свойформа, которую я получаю Expected value of type "App\Entity\tags" for association field "App\Entity\Item#$tags", got "App\Entity\Tag" instead.
Я не понимаю, потому что я использую EntityType
, поэтому доктрина должна знать, что это отношение, и автоматически создавать объект TAGS
?Как мне сказать Symfony автоматически преобразовать мой TAG
объект в TAGS
объект отношения?
Должен ли я вместо этого делать CollectionType
?Это кажется неуместным в этом случае ...
вот моя форма ТИП:
->add('tags', EntityType::class, array(
'class' => \App\Entity\Tag::class,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('tag')
->orderBy('tag.name', 'ASC');
},
'expanded' => true ,
'multiple' => true,
))
ЭЛЕМЕНТ ПУНКТА
/**
* @ORM\OneToMany(targetEntity="tags", mappedBy="item")
*/
private $tags;
ЛОГИШКА ТЕГОВ
/**
* @var int
*
* @ORM\ManyToOne(targetEntity="Item", inversedBy="tags")
* @ORM\JoinColumn(name="item_id")
*/
private $item;
/**
* @var int
*
* @ORM\ManyToOne(targetEntity="Tag", inversedBy="items")
* @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
*/
private $tag;
TAG ENTITY
/**
* @ORM\OneToMany(targetEntity="tags", mappedBy="tag")
*
*/
private $items;