单向的manyToOne关系不会创建外键约束

时间:2018-07-10 13:52:10

标签: php symfony doctrine shopware

我目前正在尝试为Shopware 5.4.4创建一个插件。

我的一个模型中的一个字段与商店表s_userShopware\Models\Customer\Customer)具有单向的ManyToOne关系。简化示例:

use Shopware\Components\Model\ModelEntity;
use Doctrine\ORM\Mapping;

/**
 * @Mapping\Entity
 * @Mapping\Table(name="_test")
 */
class TestModel extends ModelEntity
{
    /**
     * @Mapping\Column(name="id", type="integer", nullable=false, options={"unsigned":true})
     * @Mapping\Id
     * @Mapping\GeneratedValue(strategy="IDENTITY")
     */
    private $id;
    /**
     * @Mapping\ManyToOne(targetEntity="Shopware\Models\Customer\Customer")
     * @Mapping\JoinColumn(name="customer_id", referencedColumnName="id")
     */
    private $customer;
}

根据https://www.doctrine-project.org/projects/doctrine-orm/en/2.5/reference/association-mapping.html#many-to-one-unidirectional,应执行ALTER TABLE _test ADD FOREIGN KEY [...]并添加约束。但是未创建外键。

如果我要添加标签inversedBy并创建双向manyToOne关系,则会创建外键 。但是,由于明显的原因,我不想操纵Shopware核心表,所以我不能这样做。

如果在创建完该表之后我直接(从我的代码中)运行ALTER TABLE [...]命令,它也将起作用。

所以我是否缺少某些东西,还是真的需要手动添加此外键约束

0 个答案:

没有答案