я пытаюсь создать отношения manyToMany с большим количеством атрибутов, чем идентификаторы, поэтому мне нужны два отношения OneToMany и два отношения ManytoOne с тремя таблицами/сущностями.
У меня есть объект Product, объект Client и объект ProductClient:
class Client
{
/**
* @var integer
*
* @ORM\Column(name="id_client", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $idClient;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100, nullable=false)
*/
private $name;
/**
* @var \ProductClient
*
* @ORM\OneToMany(targetEntity="ProductClient", mappedBy="client")
*/
private $products_clients;
}
class Product
{
/**
* @var integer
*
* @ORM\Column(name="id_product", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $idProduct;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100, nullable=false)
*/
private $name;
/**
* @var \ProductClient
*
* @ORM\OneToMany(targetEntity="ProductClient", mappedBy="product")
*/
private $products_clients;
}
class ProductClient
{
/**
* @ORM\Column(name="product_id", type="integer")
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Product", inversedBy="products_clients")
* @ORM\JoinColumn(name="product_id", referencedColumnName="id_product", nullable=false)
*/
protected $product;
/**
* @ORM\Column(name="client_id", type="integer")
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Client", inversedBy="products_clients")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id_client", nullable=false)
*/
protected $client;
/**
* @var bool
*
* @ORM\Column(name="status", type="boolean")
*/
private $status;
}
Это что-то вроде этого (с геттерами, сеттерами и другими атрибутами). Но symfony запускает две ошибки недопустимых объектов, когда я перехожу к продукту:
AppBundle\Entity\Product — ассоциация AppBundle\Entity\Product#products_clients относится к полю-владельцу AppBundle\Entity\ProductClient#product, которое определено не как ассоциация, а как поле.
AppBundle\Entity\Product — ассоциация AppBundle\Entity\Product#products_clients относится к несуществующему полю AppBundle\Entity\ProductClient#product стороны-владельца.
И тот же результат, если я захожу в Клиентскую хрень. Что случилось?