2011-07-12 71 views
1

我有一个事件表和事件图像表。我有一个表单添加新事件,所以我还为该事件添加了多个图像。这样我就可以存储在事件图像表中。教条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并比将事件图像保存为循环..比我没有得到什么将使用我创建的一对多的映射器..

我是你sing zend framework 1.11和Doctrine 2.0

回答

1

首先你需要为你的对象创建getters,setters。然后您只需创建

$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文档。这将有助于确保。