7

この問題に遭遇したのはこれが初めてです。モデルの 1 つを保存すると、「この行は読み取り専用としてマークされています」というエラー メッセージが表示されます。このエラーが発生する理由と解決方法がわかりません。スタック トレースは役に立ちませんでした。この問題を解決して記録を保存するにはどうすればよいですか?

4

1 に答える 1

9

行が読み取り専用としてマークされるのは、次のいずれかの操作の結果である可能性があります。

  • Zend_Db_Select別のテーブルと結合されたクエリ
  • setIntegrityCheck(false)選択オブジェクトに設定されました
  • 1 つ以上の列が、評価された式の結果です

上記の条件のいずれかに該当する場合、Zend_Db は結果のすべての列が選択オブジェクトの元の親テーブルを参照することを保証できないため、結果の行オブジェクトは読み取り専用としてマークされます。したがって、行オブジェクトでupdate()save()、またはを呼び出そうとしても失敗します。delete()

この情報の一部は、Zend_Db_Table リファレンスに散らばっています。検索するとintegrity、行が読み取り専用とマークされているインスタンスが多数表示されます。

于 2012-04-28T02:30:28.663 に答える