我正在尝试运行以下代码:
$post = PostQuery::create()
->findPk($id);
$post->update($params);
该方法取自http://propelorm.org/documentation/03-basic-crud.html,但我收到一个错误:
致命错误:在 /usr/share/php/propel/om/BaseObject.php:426 中带有消息“调用未定义方法:更新”的未捕获异常“PropelException”
在这种情况下我做错了什么?我可以使用删除方法以相同的方式成功删除:
$post = PostQuery::create()
->findPK($id);
$post->delete();
更新
我尝试了上述解决方案,第一个效果很好,但第二个效果不佳。
$post = PostQuery::create()
->filterById($id)
->update($params);
现在这会引发另一个错误
致命错误:在 /usr/share/php/propel/map/TableMap.php:384 中未捕获的异常 'PropelException' 带有消息 'Cannot fetch ColumnMap for undefined column phpName: id'
虽然 schema.xml 对我来说看起来是正确的:
<table name="post" phpName="Post" idMethod="native">
<column name="id" phpName="Id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
我不知道这里可能是什么问题,因为我可以通过使用 find() 方法和
$post->getId();
循环时。