2012-03-29 9 views
1

私はZendとDoctrine2を使ってクラスに配列の配列を持たせたいと思います。doctrine 2を使用して多次元配列を格納する最良の方法は何ですか?

私はGridという名前のクラスを持っています。このクラスには、GridItemの配列の配列を含む属性が必要です。これらのGridItemさんはProductのインスタンスへのリンクも含んでいます。

/** 
* @Entity 
* @Table(name="Grid") 
*/ 
class GPos_Model_Grid extends GPos_Doctrine_ActiveEntity { 
    /** 
    * @Id @Column(type="integer") 
    * @GeneratedValue 
    */ 
    private $id; 

    /** @Column(type="integer") */ 
    private $number; 

    //THIS IS THE ATTRIBUTE 
    private $grid; 
} 

をそして、ここでGridItem.phpです:

はここGrid.php

/** 
* @Entity 
* @Table(name="GridItem") 
*/ 
class GPos_Model_GridItem extends GPos_Doctrine_ActiveEntity { 
    /** 
    * @Id @Column(type="integer") 
    * @GeneratedValue 
    */ 
    private $id; 

    /** @Column(length=7) */ 
    private $color; 

    /** @Column(type="boolean") */ 
    private $grid; 

    /** 
    * @ManyToOne(targetEntity="Product") 
    * @JoinColumn(name="product_id", referencedColumnName="id") 
    */ 
    private $product; 
} 

を私が言ったように、私は$grid属性はGridItemのArrayCollectionsのArrayCollectionのとして保存することにしたいと思います。
しかし、私はこれを実現させるためにどのような注釈を使用すべきか理解できません。私が今見つけた唯一の方法は、GridGridItemの間の中間クラスを作成することです。これはGridRowのようになります。だから私は多対1の関係をすべての間に持つことができました。しかし、これはテーブルの間に新しい「ジョイント」を生み出します。

あなたはそのGridRowクラスなしでこれを行う方法に関するアドバイスをお持ちですか?したがって、GridGridItemのみを使用していますか?

ありがとうございました!

答えて

0

最後にGridRowオプションを選択しました。配列の配列を格納する方法が見つからないためです。