How can I select all items from one specific author ? Its possible this way ? Or how can I edit entities if I want many item types and item packages (item has many items) too ?
Item
/**
* @ORM\Table()
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "cd" = "ItemCD",
* "dvd" = "ItemDVD",
* "pack" = "ItemPack",
* })
*/
class Item
{
/**
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\Column(name="name", type="string", length=250, nullable=false)
*/
private $name;
}
ItemCD
/**
* @ORM\Table()
* @ORM\Entity
*/
class ItemCD extends Item
{
/**
* @ORM\ManyToOne(targetEntity="Author", inversedBy="item")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
private $author;
}
ItemDVD
/**
* @ORM\Table()
* @ORM\Entity
*/
class ItemDVD extends Item
{
/**
* @ORM\ManyToOne(targetEntity="Author", inversedBy="item")
* @ORM\JoinColumn(name="author_id", referencedColumnName="id")
*/
private $author;
}
ItemPack
/**
* @ORM\Table()
* @ORM\Entity
*/
class ItemPack extends Item
{
/**
* @ORM\ManyToMany(targetEntity="Item", inversedBy="item")
* @ORM\JoinTable()
*/
private $items;
}
Author
/**
* @ORM\Table()
* @ORM\Entity
*/
class Author
{
/**
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*
*/
private $id;
/**
* @ORM\Column(name="name", type="string", length=250, nullable=false)
*/
private $name;
}