Как переопределить уникальные ограничения соединения, определенные в суперклассе в Doctrine ORM? - PullRequest
0 голосов
/ 10 октября 2019

В моем проекте Symfony я использую Sylius / TaxonBundle в качестве одной из моих зависимостей, и мне нужно отменить уникальное ограничение slug_uidx в сущности TaxonTranslation, то есть мне нужен набор полей locale и slug, чтобы они не были уникальными.

Это отображение суперкласса, от которого я наследую.

<?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) Paweł Jędrzejewski

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                                      http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <mapped-superclass name="Sylius\Component\Taxonomy\Model\TaxonTranslation" table="sylius_taxon_translation">
        <id name="id" column="id" type="integer">
            <generator strategy="AUTO" />
        </id>
        <field name="name" column="name" type="string" />
        <field name="slug" column="slug" type="string" unique="false" />
        <field name="description" column="description" type="text" nullable="true" />
        <unique-constraints>
            <unique-constraint columns="locale,slug" name="slug_uidx" />
        </unique-constraints>
    </mapped-superclass>

</doctrine-mapping>

Это мой класс, в котором мне нужно отменить объясненное выше:

<?php

declare(strict_types=1);

namespace App\Entity\Taxonomy;

use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\Table;
use Sylius\Component\Taxonomy\Model\TaxonTranslation as BaseTaxonTranslation;

/**
 * @Entity
 * @Table(name="sylius_taxon_translation")
 */
class TaxonTranslation extends BaseTaxonTranslation
{
}
...