findManyToManyRowset はとても便利なメソッドです。
以下の様なテーブル構成の場合
・テーブルA
・テーブルB (テーブルAの子テーブル)
・テーブルC (テーブルBの子テーブル)
findテーブルCViaテーブルB
または
findManyToManyRowset(‘テーブルC’ , ‘テーブルB’)
と書くことで、Cの情報を1行で取得することができます。
以前の記事でこの場合、テーブルBのデータも参照のみ可能な状態で、
Zend_Db_Table_Rowsetクラスに含まれていることを書きました。
しかし、テーブルCのデータを更新して、save()した後、テーブルBのデータは、オブジェクトの中から消えてしまいます。
もともとテーブルCのRowsetオブジェクトなので、理解できるのですが、
予想していない挙動だったので、ここにメモしておきます。
参照するなら、テーブルCの情報を更新する前に。ここ大事です。