私は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のとして保存することにしたいと思います。
しかし、私はこれを実現させるためにどのような注釈を使用すべきか理解できません。私が今見つけた唯一の方法は、Grid
とGridItem
の間の中間クラスを作成することです。これはGridRow
のようになります。だから私は多対1の関係をすべての間に持つことができました。しかし、これはテーブルの間に新しい「ジョイント」を生み出します。
あなたはそのGridRow
クラスなしでこれを行う方法に関するアドバイスをお持ちですか?したがって、Grid
とGridItem
のみを使用していますか?
ありがとうございました!