基于这篇文章:如何设置外键 id #sf2 #doctrine2 的 id
在上一篇文章中我找到了这个解决方案
class Item
{
/**
* @ORM\ManyToOne(targetEntity="MyBundle\Entity\ItemType", inversedBy="itemTypes")
* @ORM\JoinColumn(name="type_id", referencedColumnName="id")
*/
protected $item_type;
/**
*
* @var string $item_type_id
* @ORM\Column(type="integer")
*/
protected $item_type_id;
}
.... Setter & Getter
}
这让我可以做这样的事情
$item = new Item();
$item->setItemTypeId(2); // Assuming that the ItemType with id 2 exists.
但是从理论上的最新更新 2.3 开始,它不再起作用了。
当我持久化项目(因此创建 INSERT SQL 查询)时,它不会设置 item_type_id 字段。只有所有其他字段。
知道如何手动设置 item_type_id 而无需在设置之前检索 ItemType 吗?查询的使用过度了!?
$item = new Item();
$itemType = $this->entity_manager->getRepository('Acme\MyBundle:ItemType')->find(2);
$item->setItemType($itemType); // Assuming that the ItemType with id 2 exists.