Ошибка пакета новостей Symfony 4 и Sonata во время внедрения

Я получил следующую ошибку при установке SonataNewsBundle.

Unable to register extension "Sonata\FormatterBundle\Extension\ControlFlowExtension" as it is already registered in . (which is being imported from "/home/yoesoff/Documents/projects/oblog/config/routes/sonata_admin.yaml"). Make sure there is a loader supporting the "sonata_admin" type.

И следующая ошибка

The target-entity App\Entity\SonataMediaMedia cannot be found in 'App\Entity\SonataClassificationCollection#media'.

Я просто следовал официальной документации отсюда.

Кто-нибудь может помочь по этому поводу?

1 ответ

Решение

В документации отсутствует шаг - похоже, нам нужно вручную добавить дополнительный пакет, который создает отсутствующие классы:

composer require sonata-project/media-orm-pack

Обратите внимание, что если вы используете sonata-project/classification-bundleнеобходимо исправить аннотации для App\Entity\SonataMediaMedia::$category вот так:

/**
 * ORM\ManyToOne(
 *     targetEntity="App\Entity\SonataClassificationCategory",
 *     cascade={"persist"}
 * )
 * ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="SET NULL")
 *
 * @var SonataClassificationCategory
 */
protected $category;

Если это поможет, насколько я понимаю, мы должны пропустить sonata:easy-extends:generate шаги при использовании Symfony 4 / Flex.

Рецепты Flex должны создавать классы в нашем App\Entity Пространство имен.

Если они этого не сделают, это будет что-то в соответствии с вышеизложенным, где вещи нужно добавить вручную.

Другие вопросы по тегам