7

这是我第一次遇到这个问题。保存我的一个模型时,我收到错误消息:“该行已被标记为只读”。不知道为什么我会收到此错误以及如何解决它。堆栈跟踪对我没有帮助。如何解决此问题以便保存记录?

4

1 回答 1

9

将行标记为只读可能是以下任何操作的结果:

  • Zend_Db_Select查询与另一个表连接
  • setIntegrityCheck(false)在选择对象上设置
  • 一列或多列是评估表达式的结果

如果上述任何一个条件为真,那么生成的行对象将被标记为只读,因为 Zend_Db 不能保证结果中的所有列都引用了选择对象的原始父表。因此,对行对象调用update()save()或的任何尝试都将失败。delete()

其中一些信息散布在整个Zend_Db_Table 参考中,如果您在其中搜索,integrity您可以看到许多行将被标记为只读的实例。

于 2012-04-28T02:30:28.663 回答