2012-07-25 69 views
0

好吧,所以我刚分配了一个使用Doctrine和Zend的新项目。这是我第一次使用Doctrine,我遇到了一个错误,谷歌没有提出任何答案。 我向表中添加了一个新字段(VARCHAR 17),在该表的实体中添加了getter/setter函数,然后运行orm:generate-proxies。Doctrine ORM错误:未知列类型varchar请求

一切都很好,除了现在我试图保存任何东西时出现此错误:未知的列类型varchar请求。

有什么想法?

回答

-2

首先了解教义命令
ORM:生成实体编写的getter/setter函数的实体文件,
ORM:架构工具:更新来更新数据库表,
你不应该做这项工作手动编写yaml/xml/php模式并运行它们。

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

在实体和模式文件中使用类型“字符串”而不是varchar。 我更喜欢YAML模式:

username: 
    type: string 
    length: 17 
1

的问题是,这种理论注解不知道底层数据库。所以,你必须做的是你的标记字段作为字符串类型,在你的案件17长度:

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

有关如何将实体的属性映射参考还看到Doctrine Basic Mapping