Symfony: встроить коллекцию форм для отношений ManyToOne-OneToMany
Я использую Symfony 2.3 с Doctrine и этими тремя (соответствующими) сущностями:публикация, автор а такжеAuthorPublication, И то и другое,автор а такжепубликация иметь отношение многих к одномуAuthorPublication (так что это в основном отношение «многие ко многим» междуавтор а такжепубликация но мне нужноAuthorPublication Право на заказ авторов публикации)
Я хочу иметь форму, где пользователь может создать новую публикацию и выбрать столько авторов для этой публикации, сколько он хочет.
Я изучил эту статью:Как встроить коллекцию форм но я не понимаю, как применить это к моей проблеме из-заAuthorPublication сущность, которая лежит между ними.
Соответствующий код:
публикация
<?php
namespace ind\PubBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="ind\PubBundle\Repository\PublicationRepository")
* @ORM\Table("publications")
*/
class Publication {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $pid;
/**
* @ORM\OneToMany(targetEntity="AuthorPublication", mappedBy="publication")
* @ORM\OrderBy({"order_id" = "ASC"})
*/
protected $publicationAuthors;
//some more attributes + getters/seters
?>
автор
<?php
namespace ind\PubBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table("aid_author")
*/
class Author {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $aid;
/**
* @ORM\Column(type="string", length=255)
*/
protected $author_surname;
/**
* @ORM\Column(type="string", length=255)
*/
protected $author_forename;
/**
* @ORM\OneToMany(targetEntity="AuthorPublication", mappedBy="author")
*/
protected $authorPublication;
?>
AuthorPublication
<?php
namespace ind\PubBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table("aid_pid")
*/
class AuthorPublication {
/**
* @ORM\Id
* @ORM\Column(type="integer")
*/
protected $aid;
/**
* @ORM\Id
* @ORM\Column(type="integer")
*/
protected $pid;
/**
* @ORM\Column(type="integer")
*/
protected $order_id;
/**
* @ORM\ManyToOne(targetEntity="Publication", inversedBy="publicationAuthors")
* @ORM\JoinColumn(name="pid", referencedColumnName="pid")
*/
protected $publication;
/**
* @ORM\ManyToOne(targetEntity="Author", inversedBy="authorPublication")
* @ORM\JoinColumn(name="aid", referencedColumnName="aid")
*/
protected $author;
?>