Могу ли я переопределить метод от подписчика из стороннего пакета в PHP? - PullRequest
1 голос
/ 15 октября 2019

Я добавляю переводы KnpBehaviors в мой проект Symfony. Но я получаю сообщение об ошибке, когда хочу настроить перевод для одной из моих сущностей:

Column name `id` referenced for relation from Entity\EntityToBeTranslatedTranslation towards Entity\EntityToBeTranslated

На самом деле, кажется, что для перевода, только knp-переводы работаютс сущностью, у которой нет идентификатора на Id. Я хотел бы сохранить это пользовательское имя.

Метод, который получает Id, находится в подписчике от knp: Knp\DoctrineBehaviors\ORM\Translatable\TranslatableSubscriber, in 'mapTranslation' method

if (!$classMetadata->hasAssociation('translatable')) {
    $classMetadata->mapManyToOne([
        'fieldName'    => 'translatable',
        'inversedBy'   => 'translations',
        'cascade'      => ['persist', 'merge'],
        'fetch'        => $this->translationFetchMode,
        'joinColumns'  => [[
            'name'                 => 'translatable_id',
            'referencedColumnName' => 'id',
            'onDelete'             => 'CASCADE'
        ]],
        'targetEntity' => $classMetadata->getReflectionClass()->getMethod('getTranslatableEntityClass')->invoke(null),
    ]);
}

Я хотел бы знать, есть ли способ переопределить этот метод из этого стороннего пакета.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...