Я начинаю использовать Symfony 4 и Doctrine.
У меня есть эти сущности с составными ключами :
/**
* Shops
*
* @ORM\Entity
*/
class Shops
{
/**
* @var \App\Entity\Registers[]
*
* @ORM\OneToMany(targetEntity="Registers", mappedBy="shop")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="shop_id", referencedColumnName="id"),
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
* })
*/
private $registers;
}
/**
* Registers
*
* @ORM\Entity
*/
class Registers
{
/**
* @var \App\Entity\Shops
*
* @ORM\ManyToOne(targetEntity="Shops", inversedBy="registers")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="shop_id", referencedColumnName="id"),
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
* })
*/
private $shop;
}
Я хочу динамически получить список идентификаторов из Shops.registers
При выполнении
SELECT t, PARTIAL registers.{id} FROM App:Shops t JOIN t.registers
Я получаю сообщение об ошибке The partial field selection of class App\Entity\Registers must contain the identifier
Выполнение
$entityManager
->getClassMetadata("App:Shops")
->getAssociationMapping('registers');
не возвращает никакой информации о ключах (когда тип ассоциации == ONE_TO_MANY (4) `)
Вопрос
Как получить Shop.register
PK на OneToManyотношение?
Я хочу динамически получить список идентификаторов из Shops.registers