Я пытаюсь создать отношение 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 запускает две «ошибки недействительных сущностей», когда я захожу в Product crud:
AppBundle \ Entity \ Product - Ассоциация AppBundle \ Entity \ Product # products_clients ссылается на поле собственной стороны AppBundle \ Entity\ ProductClient # product, который не определен как ассоциация, но как поле.
AppBundle \ Entity \ Product - Ассоциация AppBundle \ Entity \ Product # products_clients ссылается на собственное поле AppBundle \ Entity \ ProductClient # product, котороене существует.
И тот же результат, если я иду к клиенту Crud.Что не так?