Я хотел бы иметь массив массивов в классе, используя 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
был сохранен как ArrayCollection ArrayCollections GridItem
.
Однако я не могу понять, какую аннотацию мне следует использовать, чтобы это произошло. Единственный способ, который я нашел сейчас, - это создать средний класс между Grid
и GridItem
, который был бы чем-то вроде GridRow
. Таким образом, у меня могли быть ассоциации Много-к-одному между всеми ними. Но это создает новое «соединение» между таблицами, и я получу небольшой, но все же значительный удар по производительности, который я не могу себе позволить.
У вас, ребята, есть какой-нибудь совет, как это сделать без этого GridRow
класса? Таким образом, используя только Grid
и GridItem
?
Спасибо за помощь!