教义2.0中的一对多关系问题


one to many relationship problem in doctrine 2.0

我有一个事件表和事件图像表。我有一个添加新事件的形式,所以我也为该事件添加多个图像。因此,我存储在事件图像表。

那么我如何在两个表中插入数据…

<?php
/**
 * @Entity
 * @Table(name="events")
 */
class Default_Model_Event
{
     /**
     * @Id @Column(name="id", type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;

    /** 
    * @Column(name="title", type="string") 
    */
    private $title;

    /**
     * @OneToMany(targetEntity="Default_Model_EventImages" mappedBy="eventimage_mapper") 
     */
    private $images_mapper;

}//end class

事件图像模型

<?php
/**
 * @Entity
 * @Table(name="event_images")
 */
class Default_Model_EventImages
{
     /**
     * @Id @Column(name="id", type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;
    /** 
    * @Column(name="name", type="string") 
    */
    private $name;
    /**
     * @ManyToOne(targetEntity="Default_Model_Event", inversedBy="images_mapper")
     * @JoinColumn(name="event_id", referencedColumnName="id")
     */
    private $eventimage_mapper;

}//end class

从我的控制器我如何保存数据现在…我正在考虑首先保存事件数据,然后将得到该id,然后将保存事件图像循环..那么我就没有得到我所创建的一对多映射器的用途了。

我使用的是zend framework 1.11和Doctrine 2.0

首先需要为对象创建getter、setter。然后创建

$event = new Default_Model_Event();
$em->persist($event);
while (something) {
  $image = new Default_Model_EventImages();
  $image->setEventimage_mapper($event);
  $em->persist($image);
}
$em->flush();

请阅读有关关联的Doctrine文档。这肯定有帮助。