如何设置外键id的id #sf2 #doctrine2

Yon*_*lyo 2 php foreign-keys symfony doctrine-orm

我正在尝试为对象手动设置外键 ID,但没有找到方法

class Item
{
    /**
     * @ORM\ManyToOne(targetEntity="MyBundle\Entity\ItemType", inversedBy="itemTypes")
     * @ORM\JoinColumn(name="type_id", referencedColumnName="id")
     */
    protected $item_type;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做一些链接?

$item = new Item();
$item->setItemTypeId(1); // This generate an error.
Run Code Online (Sandbox Code Playgroud)

还是我必须这样做?

$item = new Item();
$type = Repository::RetrieveById(1);
$item->setItemType($type); // This generate an error.
Run Code Online (Sandbox Code Playgroud)

mat*_*hew 6

这可以使用Reference Proxies来完成,它允许您获取对标识符已知的实体的引用,而无需从数据库加载该实体。

$type = $em->getReference('MyBundle\Entity\ItemType', 1);
$item->setItemType($type);
Run Code Online (Sandbox Code Playgroud)