В моем приложении есть сущность Post и Tag, и мне нужно много-много связей между ними.Я думаю, что справился, но не совсем уверен.Вот мои сущности:
Post:
/**
* @ORM\Table(name="posts")
*/
class Post
{
( ... )
/**
* @ORM\OneToMany(targetEntity="PostTag", mappedBy="post_id")
*/
private $tags;
public function __construct()
{
$this->tags = new ArrayCollection();
}
( ... )
}
Tag:
class Tag
{
/**
* @ORM\Column(name="tagname", unique=true, type="string", length=255)
*/
private $tagname;
/**
* @ORM\OneToMany(targetEntity="PostTag", mappedBy="tag_id")
*/
private $posts;
public function __construct()
{
$this->posts = new ArrayCollection();
}
( ... )
}
Я также создал сущность PostTag для хранения этих отношений:
/**
* @ORM\Table(name="post_tags")
* @ORM\Entity
*/
class PostTag
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Post", inversedBy="tags")
* @ORM\JoinColumn(name="post_id", referencedColumnName="id")
*/
private $post_id;
/**
* @ORM\ManyToOne(targetEntity="Tag", inversedBy="posts")
* @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
*/
private $tag_id;
( ... )
}
Конечно, все 3 с соответствующими получателями / установщиками.С этими отношениями все в порядке?
Полагаю, я правильно понял, но сейчас я изо всех сил пытаюсь создать встроенную форму для сущности Post.Мне нужно создать поле тегов в PostType, где можно было бы ввести теги, которые сохраняются в таблице тегов, а также идентификатор только что созданного тега и записи в таблице post_tags.Я также хочу, чтобы уже сохраненные теги можно было выбирать в другом поле, поэтому я создаю сущности таким образом.
Я пытался написать это, но действительно запутался с плохими кодами, поэтому я даже непопробуйте скопировать то, что у меня было.Может кто-нибудь кратко просветить меня, как мне это сделать?
Спасибо