Пакет "ApplicationSonataUserBundle" не существует или не включен - программирование
Подтвердить что ты не робот

Пакет "ApplicationSonataUserBundle" не существует или не включен

Мне нужно установить SonataUserBundle для установки SonataNewsBundle.

Я шаг за шагом следил за Installation Tutorial, но я получил эту ошибку:

./app/console sonata:easy-extends:generate SonataUserBundle



  [InvalidArgumentException]                                                 
  Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled.  

Пакет еще не сгенерирован. эта команда должна это сделать!

Кто-нибудь знает, как исправить эту проблему?

4b9b3361

Ответ 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