删除一对一的单向关系

时间:2012-06-26 13:05:56

标签: symfony doctrine-orm

我有一个名为Upload的实体和另一个名为Shop

的实体

商店只能有一个上传

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是自动生成的,所以我无法在上传类

中指定关系

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

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

1 个答案:

答案 0 :(得分: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并从db

中删除了约束