基于这篇文章:如何设置外键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
}
Run Code Online (Sandbox Code Playgroud)
这让我可以做那样的事情
$item = new Item();
$item->setItemTypeId(2); // Assuming that the ItemType with id 2 exists.
Run Code Online (Sandbox Code Playgroud)
但是从上一次更新doctrine2.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.
Run Code Online (Sandbox Code Playgroud) 我正在尝试为对象手动设置外键 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) 我正在尝试查询查找存储在我的文档的哈希字段中的值
我想检索持续时间字段中包含n11和n13的文档.
我虽然会那样.
{
"durations" : { $in: ['n11','n12']}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用
{
"durations" : { $in: [1,2,3,4,5,6,7,8,9]}
}
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,我都没有执行查询的结果.
在此先感谢您的帮助,我也尝试过使用钥匙