Symfony2 Нет классов метаданных для обработки

После создания объекта с:

php app/console doctrine:generate:entity 

и при использовании:

 php app/console doctrine:schema:update --force 

Я столкнулся:

Нет классов метаданных для обработки.

сущность

 namespace ISLab\AdminBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="menu_items") */ class MenuItem { /** * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(name="parent", type="integer") */ private $parent; // ... } 

У меня была аналогичная проблема, и мне потребовалось некоторое время, пока я не выясню, как очистить кеш. Очистка кеша доктрины не работала для меня. Используйте приведенную ниже команду, чтобы очистить всю среду (производственный в этом случае)

php app/console cache:clear --env=prod

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

  1. Очистить кеш
  2. Убедитесь, что ваш AdminBundle зарегистрирован в AppKernel.
  3. Убедитесь, что автопроизводство диспетчера сущностей true . Или настройте его правильно, если вы используете пользовательский EM.

Немного offtopic:

Я вижу, что вы создаете систему меню, и я настоятельно рекомендую вам проверить Дерево расширений Doctrine, которое должно позволить вам запрашивать и редактировать элементы намного эффективнее, чем с вашей структурой.

У меня была такая же проблема, когда я генерирую Entity через интерактивный генератор из командной строки. Когда я впервые создал, я установил формат конфигурации на PHP, и это не сработало. Поэтому я удалил его и попробовал еще раз, но на этот раз я выбрал формат = аннотация . Тогда это сработало! Возможно, это может решить чью-то проблему.

У меня была та же проблема, когда я обновлял базу данных. Поэтому я следую этому решению, и я попытался адаптироваться в моем случае, и он работает. Я думаю, что это проблема автомашинки действительно с auto_mapping setted true, symfony не смог найти сущности. Я надеюсь, что это может помочь.

  orm: auto_generate_proxy_classes: "%kernel.debug%" naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true mappings: AppBundle: type: annotation is_bundle: false dir: %kernel.root_dir%/../src/AppBundle/Entity/ prefix: AppBundle\Entity alias: AppBundle 

для тех, кто на одном и том же, это несколько шагов:

1. Очистите кеш:

 bin/console c:c --env=dev bin/console c:c --env=prod 

Если вы заметили какие-либо ошибки, попробуйте его закрыть, проверив источник проблемы.

2. Проверьте конфигурацию:

Согласно этой типовой структуре каталогов:

 Application | └- src | └- Acme | └- Bundle | └- BlogBundle | └- Model | └- Entity 

У вас должна быть эта конфигурация внутри вашего файла app/config/config.yml :

 doctrine: ... orm: auto_generate_proxy_classes: '%kernel.debug%' naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true mappings: AcmeBlogBundle: mapping: true type: annotation dir: Model/Entity alias: Blog prefix: Acme\Bundle\BlogBundle\Model\Entity is_bundle: true 

3. Обновите схему базы данных:

Теперь вы можете без проблем обновить схему своей базы данных:

 bin/console doctrine:schema:update 

несмотря на то, что это последний шаг для большинства случаев, вы все равно можете использовать --verbose для поиска любых возможных возможных проблем.

 bin/console doctrine:schema:update --verbose 

Убедитесь, что ваши объекты помещены в каталог Entity вашего пакета. В моем случае они были в Entities вместо этого.

Для меня создание всех объектов из cmd выполняло работу.

В моем случае я решаю проблему создания папки Entity . По какой-то причине это было устранено. Я надеюсь, что это может помочь.

У меня была такая же проблема. Для меня это было то, что мой каталог под названием «Entity» не был в «AppBundle», а в каталоге «src». Перемещение каталога «Entity» в каталог «AppBundle» устранило проблему для меня!