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


How to set the id of a foreign key id #sf2 #doctrine2

我试图手动为对象设置外键id,但没有找到如何进行

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

有没有办法把它联系起来?

$item = new Item();
$item->setItemTypeId(1); // This generate an error.

还是我必须那样做?

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

这可以使用引用代理来完成,通过引用代理可以获得对已知标识符的实体的引用,而无需从数据库加载该实体。

$type = $em->getReference('MyBundle'Entity'ItemType', 1);
$item->setItemType($type);
  1. 首先(您在ItemType类中定义了关系吗?):

    inversedBy="item"
    
  2. 第二:

    Repository::RetrieveById(1); // Not valid code for the repository methods
    
  3. 替换为:

    $type = $this->getDoctrine()->getRepository('ACMEBundle:ItemType')->find(1);
    
  4. 第二种用法将接近文档。