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