Zend Framework:此行已标记为只读

时间:2012-04-27 17:48:26

标签: zend-framework

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

1 个答案:

答案 0 :(得分:8)

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

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

如果满足上述任何条件,则生成的行对象将被标记为只读,因为Zend_Db无法保证结果中的所有列都引用select对象的原始父表。因此,任何在行对象上调用update()save()delete()的尝试都将失败。

其中一些信息遍布Zend_Db_Table reference,如果您搜索integrity,则可以看到许多行将标记为只读的实例。