2012-06-26 25 views
2

我有一个名为上传一个实体和另一个名为店删除OneToOne unidirectionnal关系

的店只能有一个上传

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; 
} 

!因为我的班车是自动生成的,所以我无法指定到我的班级的关系上传

有没有办法删除关系并删除相应的项目。

现在,如果我想删除我的实体上传,它说我有一个外键约束(这是正常的),所以我试图直接从商店删除关系,但我不知道如何做

回答

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 

因此,重新创建getter和setter,并从数据库中删除约束

+0

嗨,我想保持关系,但想清除相关项目。让我选择一个“上传”他们我想要删除它 – Chopchop

+0

如果你确实想要删除店铺实例上传,执行getUpload()方法,然后'$ this-> getDoctrine() - > getManager() - > remove($ upload); $ this-> getDoctrine() - > getManager() - > flush();'?默认情况下它是可空的。 – alex88