我在schema.xml中定义了一些表可以正常工作。它们的模型是在Propel 1.2中生成的。 XML条目如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<database name="..." namespace="..." defaultIdMethod="native">
<table name="book">
<vendor type="mysql">
<parameter name="Engine" value="InnoDB"/>
<parameter name="Charset" value="utf8"/>
</vendor>
<column name="id"
type="bigint"
required="true"
primaryKey="true"
autoIncrement="true"
/>
...some other columns here...
</table>
...some other tables...
</database>
现在,我在Propel 1.4中添加以下条目并为其生成模型:
<table name="file">
...vendor...
<column name="id"
type="bigint"
required="true"
primaryKey="true"
autoIncrement="true"
/>
...other columns...
</table>
问题是在我创建这样的对象并执行$file->save()
后,$file->getId()
返回NULL。其他模型,如上面提到的Book
,就像一个魅力。
另外,我可以看到BaseFile在setId()
方法中没有doInsert
调用,而BaseBook和其他模型一样。
如果有人解释可能导致此类行为的原因,我将不胜感激。
答案 0 :(得分:0)
首先,谢谢你 - 你的解决方案帮助了我(:
我的解决方案: 我的架构是在有问题的表在id列上没有主键时构建的。在DB中修复此问题后,我没有在schema.xml中应用更改。只需添加
primaryKey="true"
在schema.xml的id列中,所以它就像
<column name="id" phpName="Id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
使用终端重建类。