我正在使用 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/