Doctrine ORM错误:请求未知的列类型varchar

时间:2012-07-25 06:06:15

标签: doctrine-orm

好的,所以我刚刚分配了一个使用Doctrine和Zend的新项目。这是我第一次使用Doctrine,我发现了一个错误,谷歌没有得到任何答案。 我在表中添加了一个新字段(VARCHAR 17),在该表的Entity中添加了getter / setter函数,然后运行了orm:generate-proxies。

一切都很好,除了现在我在尝试保存任何内容时收到此错误:请求未知的列类型varchar。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

问题是,该学说注释不了解底层数据库。因此,您需要做的是将您的字段标记为长度为17的类型字符串:

/**
* mySuperField
* \ORM\Column(name="mySuperField", type="string", length=17)
*/
$mySuperField;

有关如何映射实体属性的参考,另请参阅Doctrine Basic Mapping

答案 1 :(得分:-2)

首先了解教义命令
orm:generate-entities,用于在实体文件中编写getter / setter函数,
orm:schema-tool:更新以更新db表,
你不应该手动完成这项工作,只需编写yaml / xml / php模式并运行它们。

如果使用Bisna library将doctrine2与zf集成,则application.ini文件中必须有“adapterClass”和“mappingDirs []”选项来描述模式文件的位置。

在实体和架构文件中使用type“string”而不是varchar。 我更喜欢yaml架构:

username:
  type: string
  length: 17