学说2.0中的一对多关系问题

时间:2011-07-12 07:07:03

标签: php database zend-framework doctrine

我有一个事件表和事件图像表。我有一个表单来添加新事件,所以我也为该事件添加了多个图像。所以我存储在事件图像表中。

所以如何在两个表中插入数据..

<?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

1 个答案:

答案 0 :(得分:1)

首先,您需要为对象创建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文档。这肯定会有所帮助。