2011-07-12 36 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文檔。這將有助於確保。