php - 如何检索 Doctrine2 实体的自定义列定义?

标签 php orm doctrine-orm entitymanager silex

我正在使用 Doctrine2 实体的 columnDefinition 语法来为我的实体实现 ENUM 列。

/**
 * @Column(type="string", columnDefinition="ENUM('active','finished','cancelled')",
 * options={"comment" = "Job status"})
 **/
protected $Status = 'active';

现在我正在尝试检索此列的定义以获取可能的字段值的列表。我已经浏览了Doctrine\ORM\Mapping\ClassMetadataInfo,但没有找到任何合适的方法来获取这些数据。谁能给我一些胶水吗?

提前致谢!

UPD:问题正是关于“columnDefinition”方法。我确实知道自定义教义 ENUMType 类的解决方案,但这不是我目前正在寻找的。谢谢。

最佳答案

您应该能够像这样获取您想要的信息:

$metadata = $em->getClassMetadata('My\Entity');
$myPropertyMapping = $metadata->getFieldMapping('myProperty');

Doctrine中的“字段”是具有映射信息的“实体”的属性,但不是“关联”。换句话说:如果您在文档 block 中定义了 @Column 注释,那么它就是一个“字段”。

关于php - 如何检索 Doctrine2 实体的自定义列定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23782654/

相关文章:

php - 使用 JavaScript 和 PHP 的动态表单问题

php - 在 PHP 中测试字符串是否为 sha1

java - 名为 'userService' 的 Bean 预期类型为 'demo.spring.orm.userService.UserService',但实际上类型为 'com.sun.proxy.$Proxy20'

php - 是否可以使用反射修改对象实例的方法

php - 教义数组 vs simple_array vs json_array

php - 如何在 CSS 样式中使用 PHP 变量?

c# - 是否有任何 .NET ORM 支持开箱即用的本地化实体?

sql - 更新数据库架构 Doctrine 时执行 sql 脚本

mysql - Doctrine2 OneToOne 映射中给出了错误的 ID

php - 需要一些关于计数和计算行总和的指导。