使用doctrine 2存储多维数组的最佳方法是什么?

时间:2012-03-29 11:38:04

标签: php multidimensional-array doctrine-orm

我想使用Zend和Doctrine2在类中创建一个数组数组。

所以我有一个名为Grid的类,它应该有一个包含GridItem数组数组的属性。这些GridItem还包含指向Product实例的链接。

这是Grid.php

/**
* @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

/**
* @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的中产阶级。所以我可以在所有这些之间建立多对一的联系。但是这会在表格之间产生一种新的“联合”,而且我会有一个很小但仍然显着的性能,我买不起。

如果没有GridRow课程,你们对如何做到这一点有什么建议吗?因此,仅使用GridGridItem

感谢您帮助我!

1 个答案:

答案 0 :(得分:0)

我最终选择GridRow选项,因为我发现无法存储数组数组。