有没有办法从某个表中检索列的注释(例如来自MySQL上的INFORMATION_SCHEMA.COLUMN表)而没有使用Doctrine ORM实际“硬编码”查询?
答案 0 :(得分:2)
最后我找到了办法。我试图做的是从控制器内部获取一个列评论
//lets say we have a table named 'product'
//and we want to get the comment from the 'name' column
//first we get a list of columns from 'product'
$columns = $this->getDoctrine()->getEntityManager()->getConnection()->getSchemaManager()->listTableColumns('product');
//then we just access getComment function from the 'Column' class
//for the 'name' column:
echo $columns['name']->getComment();
答案 1 :(得分:0)
我对此表示怀疑,同样也适用于Propel。两者都使用PDO,而afaik没有数据库中立的方法来做到这一点。
要实现这一点,您通常可以使用系统表上的SELECT语句查询表列(当然Oracle和PostgreSQL允许这样做)。但是,所涉及的表的名称因供应商而异。 Here是如何获取列名,例如,在PostgreSQL中 - 获得评论可能非常相似。
ORM很可能提供您想要的东西,但底层实现将是我在上面概述的方法。也许你可以在Doctrine邮件列表上索取它?