2

Upload というエンティティと、Shop という別のエンティティがあります。

ショップにアップロードできるのは 1 つだけです

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 は自動生成されるため、私のクラス Upload にリレーションを指定することはできません

リレーションを削除して対応するアイテムを削除する方法はありますか。

今のところ、エンティティのアップロードを削除したい場合、Foreign Key 制約があると表示されるので (これは正常です)、Shop から直接リレーションを削除しようとしていますが、方法がわかりません。

4

1 に答える 1

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

したがって、ゲッターとセッターを再作成し、データベースから制約を削除します

于 2012-06-27T20:41:09.550 に答える