Пакет "ApplicationSonataUserBundle" не существует или не включен
Мне нужно установить SonataUserBundle для установки SonataNewsBundle.
Я шаг за шагом следил за Installation Tutorial, но я получил эту ошибку:
./app/console sonata:easy-extends:generate SonataUserBundle
[InvalidArgumentException]
Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled.
Пакет еще не сгенерирован. эта команда должна это сделать!
Кто-нибудь знает, как исправить эту проблему?
Ответы
Ответ 1
Изменить 2016/09/23: этот ответ может быть немного устаревшим. Если это не сработает, вы можете просто изучить @ashish.
Во время настройки Пакета пользователей Sonata рекомендуется сопоставить doctrine: orm с ApplicationSonataUserBundle, и это невозможно сделать во время sonata: easy-extends: генерировать SonataUserBundle, потому что ApplicationSonataUserBundle еще не существует.
Итак, перед тем как рассказать о своей команде sonata: easy-extends: generate SonataUserBundle, вы можете прокомментировать строку ApplicationSonataUserBundle:
# app/config/config.yml
[...]
# Doctrine Configuration
doctrine:
[...]
orm:
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
mappings:
# ApplicationSonataUserBundle: ~
SonataUserBundle: ~
Затем вы запускаете команду sonata: easy-extends: generate SonataUserBundle,
И, наконец, вы удаляете комментарии (#) на *** ApplicationSonataUserBundle: ~ **
Пакет "ApplicationSonataUserBundle" не существует или он не включен. ошибка исчезла.
Хорошего дня.
Ответ 2
Перед запуском сонаты выполните следующие шаги: easy-extends: generate
(1) комментировать строку ApplicationSonataUserBundle в файле config.yaml
mappings:
# ApplicationSonataUserBundle: ~
SonataUserBundle: ~
(2) замените приложение \Sonata\UserBundle\Entity\User на Sonata\UserBundle\Entity\BaseUser
(3) заменить приложение \Sonata\UserBundle\Entity\Group на Sonata\UserBundle\Entity\BaseGroup
(4) запустить сонату: easy-extends: generate
"php app/console sonata: easy-extends: generate SonataUserBundle -d src"
Теперь верните назад шаги 1, 2 и 3
Ответ 3
Я установил его, удалив ссылки на Application\Sonata\UserBundle\Entity\User и Application\Sonata\UserBundle\Entity\Group из config.yml и 'new Application\Sonata\UserBundle\ApplicationSonataUserBundle() из AppKernel.php.
Затем запустите команду easy extends generate, а затем поставьте ссылки. Я думаю, что эти документы немного смешались. Вы не можете ссылаться на пакет в config.yml, пока он не существует.
Ответ 4
Привет, у меня такая же проблема. Но я могу это решить. Посмотрим, что я делаю:
В команде:
php app/console sonata:easy-extends:generate -d src/ SonataUserBundle
И затем напишите в файле AppKernel:
new Application\Sonata\UserBundle\ApplicationSonataUserBundle
Теперь это работает;)
И эта команда
sonata:easy-extends:generate SonataUserBundle
создать Bundle в файле "App/".
Ответ 5
Ваши действия правильные, за исключением того, что он создал ваш ApplicationSonataAdminBundle в папке "app/", поэтому вы должны вырезать этот сгенерированный ApplicationSonataAdminBundle и вставить в папку "src/"..
Ответ 6
Ну, эта команда - это шаг 5, и вам нужно сделать первые 4 шага, прежде чем вы сможете выполнить этот 5-й шаг.
Ошибка, которую вы получаете, состоит в том, что вы пропустили шаг 2: установка пакета и настройка фреймворка (например, AppKernel
не знает о пакете)
Ответ 7
Если вы не хотите использовать "easy-extends" - другое возможное решение - переопределить настройки по умолчанию в config.yml
sonata_user:
class:
user: Acme\UserBundle\Entity\User
group: Acme\UserBundle\Entity\Group