我有一个事件表和事件图像表。我有一个添加新事件的形式,所以我也为该事件添加多个图像。因此,我存储在事件图像表。
那么我如何在两个表中插入数据…
<?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文档。这肯定有帮助。