Ошибка пакета новостей 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
Пространство имен.
Если они этого не сделают, это будет что-то в соответствии с вышеизложенным, где вещи нужно добавить вручную.