gpt4 book ai didi

symfony - 仅从实体关系中获取 ID,而不获取 Doctrine 中的整个对象

转载 作者:行者123 更新时间:2023-12-02 00:33:39 25 4
gpt4 key购买 nike

假设我有一个实体,它引用自身来映射父子关系

class Food
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @ORM\ManyToOne(targetEntity="Food", inversedBy="foodChildren")
* @ORM\JoinColumn(name="food_group_id", nullable=true)
*/
protected $foodGroup;

/**
* @ORM\OneToMany(targetEntity="Food", mappedBy="foodGroup", fetch="LAZY", cascade={"remove"})
*/
protected $foodChildren;

我有一个用例,我想获取实体的 food_group_id ,而不从数据库获取完整的父对象。使用 fetch="LAZY" 并不能阻止 Doctrine 再次查询。有没有办法在获取$food->getFoodGroup()时只返回ID?

最佳答案

不要让你的生活变得复杂,你可以做到

$food->getFoodGroup()->getId()

不会执行任何额外的查询或触发延迟加载!

这是因为您的 $food->foodGroup 是一个知道其 ID 的代理对象。仅当您调用某个尚未加载的字段的 getter 方法时,它才会执行延迟加载。

关于symfony - 仅从实体关系中获取 ID,而不获取 Doctrine 中的整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com