Symfony2/Доктрина2: Создание сущностей, которые находятся за пределами пакета
Я пытаюсь создать сущности для своего приложения Symfony 2. Сущности будут совместно использоваться несколькими пакетами (и, возможно, несколькими приложениями), и поэтому я не хочу, чтобы они принадлежали к одному пакету. Я хочу, чтобы они были в папке src/MyApp/Entity.
У меня уже есть YML для моих сущностей, хранящихся в src/MyApp/Entity/config/doctrine (class1.orm.yml,...)
Я пытаюсь сгенерировать соответствующие классы PHP, используя задачу doctrine:generate:entities
Вот что у меня есть в моем приложении/config/config.yml
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: false
mappings:
AppRest:
type: yml
prefix: AppRest\Entity
dir: %kernel.root_dir%/../src/AppRest/Entity/config/doctrine
Вот команда, которую я использую для создания сущностей
php app/console doctrine:generate:entities AppRest/Entity
Вот исключение, которое я получаю
[InvalidArgumentException]
Bundle "AppRest" does not exist or it is not enabled.
Я хочу, чтобы доктрина поняла, что я не пытаюсь создавать сущности, которые находятся в связке. Я также попытался указать параметр --path (--path=src/apprest/Сущность), но это ничего не изменило.
Кто-нибудь может помочь?
Редактировать:
Я удалил лишнее пространство в своем каталоге, что решило проблему проблема. Параметр пути должен быть указан
3 answers
На самом деле, мне просто не хватало места в моем варианте dir выше. Сейчас это работает, но я все еще задаюсь вопросом, лучший ли это путь.
Использование:
is_bundle: false
Более подробная информация здесь: http://zalas.eu/how-to-store-doctrine-entities-outside-of-a-symfony-bundle/
При возникновении такой ошибки проверьте, указали ли вы имя ярлыка пакета, а не имя каталога пакета. Например, если у вас есть Acme\DemoBundle, его краткое имя - AcmeDemoBundle. В этом случае
orm:
mappings:
DemoBundle:
....
НЕВЕРНО.
Правильно:
orm:
mappings:
AcmeDemoBundle:
....