好的,所以我刚刚分配了一个使用 Doctrine 和 Zend 的新项目。这是我第一次使用 Doctrine,我遇到了一个错误,谷歌没有给出任何答案。我在表中添加了一个新字段(VARCHAR 17),在该表的实体中添加了 getter/setter 函数,然后运行 orm:generate-proxies。
一切都很好,除了现在我在尝试保存任何内容时遇到此错误:请求了未知的列类型 varchar。
有什么想法吗?
好的,所以我刚刚分配了一个使用 Doctrine 和 Zend 的新项目。这是我第一次使用 Doctrine,我遇到了一个错误,谷歌没有给出任何答案。我在表中添加了一个新字段(VARCHAR 17),在该表的实体中添加了 getter/setter 函数,然后运行 orm:generate-proxies。
一切都很好,除了现在我在尝试保存任何内容时遇到此错误:请求了未知的列类型 varchar。
有什么想法吗?
问题是,学说注释不知道底层数据库。因此,您需要做的就是将您的字段标记为长度为 17 的类型字符串:
/**
* mySuperField
* \ORM\Column(name="mySuperField", type="string", length=17)
*/
$mySuperField;
有关如何映射实体属性的参考,另请参阅Doctrine Basic Mapping
首先了解学说命令
orm:generate-entities 在实体文件中编写 getter/setter 函数,
orm:schema-tool:update 更新数据库表,
您不应该手动执行此工作,只需编写 yaml/xml/php schema并运行它们。
如果你使用Bisna 库来集成学说 2 和 zf,那么 application.ini 文件中必须有“adapterClass”和“mappingDirs[]”选项来描述架构文件的位置。
在实体和模式文件中使用类型“字符串”而不是 varchar。我更喜欢 yaml 模式:
username:
type: string
length: 17