我开始使用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
获取ID的列表
这样做的时候
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)`时)
问题
如何在OneToMany关系上获得Shop.register
PK?
我想动态从Shops.registers
获取ID的列表