gpt4 book ai didi

entity - 如何在不知道其名称的情况下获取 Doctrine2 实体标识符

转载 作者:行者123 更新时间:2023-12-04 02:54:08 26 4
gpt4 key购买 nike

我正在尝试使用 Doctrine2 在 Symfony2 中的基本实体类上创建一个抽象的 getId 方法,该方法用于跨表的主键命名不一致的数据库。

检查实体对象时,我看到有一个私有(private)的“_identifier”属性,其中包含我要检索的信息,但我不确定如何正确访问它。

我假设有一些简单的教义魔法类似于:

public function getId()
{
return $this->getIdentifier();
}

但是我还没有设法在任何地方的中间管上找到它。

最佳答案

您可以通过 EntityManager#getClassMetadata() 访问此信息.一个示例如下所示:

// $em instanceof EntityManager
$meta = $em->getClassMetadata(get_class($entity));
$identifier = $meta->getSingleIdentifierFieldName();

如果您的实体具有复合主键,则需要使用 $meta->getIdentifierFieldNames()反而。当然,使用这种方法,您需要访问 EntityManager 的实例。 , 所以这段代码通常放在 custom repository而不是实体本身。

希望有帮助。

关于entity - 如何在不知道其名称的情况下获取 Doctrine2 实体标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128914/

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