2010-12-07 2 views
3

私はDoctrine 1.2を使用しています。 Doctrine_Queryを実行して、Doctrine_Collectionを返す代わりに自分が選んだクラスを返すようにしたいと思います。つまり、通常はDoctrine_Collectionオブジェクトを返します。Doctrineのカスタムコレクション1.2

$o = Doctrine_Query::create() 
->from('Foo') 
->execute(); 

$o; //instance of Doctrine_Collection 

は通常Doctrine_Collectionオブジェクトを返します。代わりに、私は私が論理的にグループ機能することができますどの

class Foo_Collection extends Doctrine_Collection 
{ 

    public function soSomethingSpecificToAFooObject() 
    { 
    } 
} 

私は他の場所で定義され、それがFoo_Collectionオブジェクトを返すようにしたいと思います。

これは可能ですか?コードベースで私が読んで突き止めたことから、これはハイドレーターと関係があるように思えますが、マニュアルページやチュートリアルはできませんでした。

答えて

4

イムは、あなたは自分の録音のsetUpconstruct方法に以下を追加することができますかなり確信している(setUp前に実行されたテーブルには、いずれか1 constructで利用可能であるべきであると私も思う):

$this->_table->setAttribute(Doctrine_Core::ATTR_COLLECTION_CLASS, 'Foo_Collection'); 

あなたが設定することもできDoctrine_Collectionを拡張し、すべてのモデルで異なるクラスを使用する必要がある場合は、これをDoctrine_Connectionにグローバルに追加します。

+0

ありがとう、それは簡単でした。 –

+0

setUpメソッドへの追加が私にとってはうまくいった。この両方のおかげで非常に助かりました。 – paulkmoore

関連する問題