2

Zend_Db_Table_Row_Abstractを拡張して、テーブルのフィールド以外にいくつかの追加フィールドを追加したいと思います。

例。

私は持っています

class Automobili_Model_Car extends Zend_Db_Table_Abstract { 
        protected $_name = 'car'; 
        protected $_rowClass = 'Automobili_Model_Row_Car'; 
} 

class Automobili_Model_Row_Car extends Zend_Db_Table_Row_Abstract { 
} 

車のテーブルにはモデルテーブル(corsa、clio ...)を参照するmodel_idがあります。Automobili_Model_Row_Carに、車のテーブルのmodel_idだけでなく、依存するテーブルモデルからモデルをロードしてもらいたいです。

それを行うための正しい方法は何ですか?

よろしく、サシャスタメンコビッチ。

4

2 に答える 2

1

いくつかのオプションがあります。

前述のfindDependentRowset()メソッドとfindParentRow()メソッドがあります。それらについては、ドキュメントを読んでください:http: //framework.zend.com/manual/en/zend.db.table.relationships.html。私はこの方法のコツを実際に得たことがないので、それについてはあまり言いません。

もう1つのオプションは、Zend_Db_Table_Row_Abstractにオーバーライドできるinit()関数があることです。そこから他の行をロードでき、Carオブジェクトが作成されるたびに、モデルがロードされます。これはコストがかかる可能性がありますが、すべてのオブジェクトについて、データベースに対して別のクエリがあります。1つのクエリに50行をロードすると、Carオブジェクトの作成時に実行されるクエリがさらに50個あります。

もう1つのオプションは、getModel()関数をCarクラスに追加することです。この関数は、要求されたときにModelクラスを遅延ロードします。

お役に立てれば。

于 2010-02-18T08:04:06.147 に答える
0

正確にどのように機能させたいかについての詳細を投稿できますか...つまり、依存行セットまたは親行セットをそれぞれとでいつでもフェッチできfindDependentRowsetますfindParentRow

于 2010-02-18T07:38:55.227 に答える