2012-06-26 2 views
2

У меня есть объект под названием Загрузить и еще один называется магазинУдалить OneToOne unidirectionnal отношение

Магазин может иметь только один Upload

class Shop 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var Upload 
    * 
    * @ORM\OneToOne(targetEntity="Vendor\SystemBundle\Entity\Upload",cascade={"all"}) 
    */ 
    private $myfile; 
} 

class Upload 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string $name 
    * 
    * @ORM\Column(name="name", type="string") 
    */ 
    private $name; 

    /** 
    * @var string $path 
    * 
    * @ORM\Column(name="path", type="string") 
    */ 
    private $path; 

    /** 
    * @var string $uniqId 
    * 
    * @ORM\Column(name="uniqId", type="string", nullable=true) 
    */ 
    private $uniqId; 

    /** 
    * @var integer $size 
    * 
    * @ORM\Column(name="size", type="integer", nullable=true) 
    */ 
    private $size; 

    /** 
    * @var string $extension 
    * 
    * @ORM\Column(name="extension", type="string", nullable=true) 
    */ 
    private $extension; 
} 

! Поскольку мой класс Shop генерируется автоматически, я не могу указать отношение в моем классе. Загрузить

Есть ли способ удалить отношение и удалить соответствующий элемент.

На данный момент, если я хочу удалить свой объект Загрузка, он говорит, что у меня есть внешний ключ (что нормально), поэтому я пытаюсь удалить отношение непосредственно из магазина, но я не знаю, как do

ответ

0

Вы создали его с помощью команды php app/console doctrine:generate:entity?

Если вы хотите удалить связь удалить часть

/** 
* @var Upload 
* 
* @ORM\OneToOne(targetEntity="Vendor\SystemBundle\Entity\Upload",cascade={"all"}) 
*/ 
private $myfile; 

, а затем сделать

php app/console doctrine:generate:entities Your\Entity\Path\ 
php app/console doctrine:schema:update --force 

Так воссоздает методы получения и установки и удаления Ограничить из БД

+0

Привет, я хочу сохранить отношение, но хочу очистить связанный элемент. Скажем, я выбрал «Загрузить» их, я хочу удалить его. – Chopchop

+0

Что делать, если вы получаете экземпляр магазина, который хотите удалить загрузите, выполните метод getUpload(), а затем '$ this-> getDoctrine() -> getManager() -> remove ($ upload); $ this-> getDoctrine() -> getManager() -> flush(); '? По умолчанию он обнуляется. – alex88