有没有办法从 Doctrine 2.2 实体中获取 FK 列值?

Posted

技术标签:

【中文标题】有没有办法从 Doctrine 2.2 实体中获取 FK 列值?【英文标题】:Is there a way to get the FK column value from Doctrine 2.2 entity? 【发布时间】:2012-07-27 14:22:15 【问题描述】:

我最近一直在想这个主题。当然,我总是可以创建一个选择 IDENTITY(entity.associated_entity) 的自定义查询。我只是想知道我是否可以在没有这样的额外步骤的情况下做同样的事情。并加入。 编辑:,当然,没有在实体字段中声明 FK 列的变态。

【问题讨论】:

【参考方案1】:

免责声明:不能保证这实际上是解决此问题的指定方法。

我所做的是为 FK 列添加另一个显式定义。

/**
 * @Column(type="integer", length=11, nullable=false)
 */
protected $fktable_id;

即使这可能是一种变态 :) 整个教义是

【讨论】:

这肯定会在刚从数据库加载后从实体中检索外键,但我几乎可以肯定,如果稍后在代码中的某个地方我们以标准方式更改关联,此字段将不会更新。这将导致更多的拐杖。特别是如果我们想在几种方法中使用这样的实体。

以上是关于有没有办法从 Doctrine 2.2 实体中获取 FK 列值?的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine 2 从相关实体获取项目

如何从 Doctrine Fixture 参考中获取实体?

如何使用 Symfony 2.1 从内部控制器获取 Doctrine 实体的实体管理器

Doctrine 2.2 ORM:查找扩展实体

从 orm.xml Doctrine 生成 php 实体

通过findOneBy方法获取的Doctrine实体的行为与通常类似,但会触发致命错误