проблема отношения один ко многим в доктрине 2.0 - PullRequest
1 голос
/ 12 июля 2011

У меня есть таблица событий и таблица изображений событий.У меня есть форма для добавления нового события, поэтому я также добавляю несколько изображений для этого события.Так что я храню в таблице изображений событий.

, так как мне вставить данные в обе таблицы ..

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

От моего контроллера, как мне сохранить данные сейчас ... Я думаю о первом сохранении данных о событиях, а затем получу этот идентификатор, а затем сохраню изображения событий по циклу ... чем я не получаю то, что будет использоватьЯ создал один маппер для многих ..

Я использую Zend Framework 1.11 и Doctrine 2.0

1 Ответ

1 голос
/ 12 июля 2011

Сначала вам нужно создать геттеры, сеттеры для ваших объектов.Затем вы просто создаете

$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 об ассоциациях.Это точно поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...