Intereting Posts
Существуют ли случаи, когда деструктор в PHP НЕ вызывается? Найти количество открытых сеансов Создание формы из запроса mysql_fetch_array Как я могу разделить предложение на слова и знаки препинания? Как изменить атрибут Cross Origin с использованием loadFromJSON? PHP – «Торговый центр Сала – $ emo» против «Sal's mall is». $ Emo – строка с эффективностью конкатенации кавычек «Предупреждение: mysql_query (): предоставленный аргумент не является допустимым MySQL-Link» – Почему? Подключение эскизов к изображениям, извлеченным с помощью php Как вынуть анкерный элемент из эха (functions.php) и поместить его в тело (index.php)? PHP Простой HTML DOM Parser, который находит конкретный текст Laravel 4: Предотвращение отправки нескольких форм – токен CSRF Как передать аргументы во включенный файл? Что это означает в документации: квадратная скобка, за которой следует запятая ( Количество черных пикселей изображения php сортирует ассоциативные массивы ключами, что эти ключи существуют в другом массиве

«Класс XXX не является допустимым сущностью или отображенным суперклассом» после перемещения класса в файловой системе

У меня был класс сущностей в Aib \ PlatformBundle \ Entity \ User.php

У меня не было проблем с попыткой создать класс формы через

php app / console doctrine: generate: form AibPlatformBundle: Пользователь

Теперь я изменил пространство имен на Aib \ PlatformBundle \ Entity \ Identity \ User, но когда я попытаюсь сгенерировать форму с заданием, которое я сказал, прежде чем он говорит:

«Класс Aib \ PlatformBundle \ Entity \ User не является допустимым сущностью или отображенным суперклассом».

Это содержимое файла:

<?php namespace Aib\PlatformBundle\Entity\Identity; use Doctrine\ORM\Mapping as ORM; /** * Aib\PlatformBundle\Entity\Identity\User * * @ORM\Table() * @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity \UserRepository") */ class User { ... 

Есть идеи?

symfony2.0.4

Если бы эта проблема – не забывайте аннотацию * @ORM\Entity как * @ORM\Entity ниже:

 /** * Powma\ServiceBundle\Entity\User * * @ORM\Entity * @ORM\Table(name="users") */ 

Проверьте файл config.yml, должен содержать следующее:

 # Doctrine Configuration doctrine: dbal: driver: %database_driver% host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% charset: UTF8 types: json: Sonata\Doctrine\Types\JsonType orm: auto_generate_proxy_classes: %kernel.debug% # auto_mapping: true entity_managers: default: mappings: FOSUserBundle: ~ # ApplicationSonataUserBundle: ~ YourUserBundle: ~ SonataUserBundle: ~ 

Добавьте собственный список в список сопоставлений.

Была эта проблема вчера и нашла эту нить. Я создал объект с отображением в новом пакете (например, MyFooBundle / Entity / User.php), выполнил всю конфигурацию в соответствии с документами, но получил ту же самую ошибку при попытке загрузить приложение.

В конце я понял, что я не загружаю MyFooBundle в AppKernel:

 new My\FooBundle\MyFooBundle() 

Отличный способ отладить это – запустить эту команду:

 app/console doctrine:mapping:info 

В моем случае проблема была решена путем смены кеша серверов с eAccelerator на APC . Очевидно, eAccelerator удаляет все комментарии из файлов, которые разбивают ваши аннотации.

большой thx, чтобы Марк Фу и mogoman

Я знал, что это должно быть где-то в config.yml … и быть в состоянии проверить его против

 app/console doctrine:mapping:info 

действительно помогли!

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

Я разрешил одно и то же исключение, удалив конфликтующий автогенерированный файл orm.php в папке Ресурсы ресурсов / конфиг / доктрина; в соответствии с документацией: «Пакет может принимать только один формат определения метаданных. Например, невозможно сопоставить определения метаданных YAML с аннотированными определениями сущностей PHP».

Я решил это, передав false как второй параметр в Doctrine\ORM\Configuration::newDefaultAnnotationDriver .

Мне потребовалось некоторое время, чтобы копаться через Google и исходный код.

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

Я переработал устаревшие объекты, и они перестали работать. Они использовали @Annotation вместо @ORM\Annotation , поэтому после рефакторинга просто не удалось прочитать метаданные. Не используя простой читатель аннотаций, все выглядит нормально.

Я решил эту проблему, установив $useSimpleAnnotationReader=false при создании MetaDataConfiguration .

Очень высокая вероятность того, что у вас есть PHP 5.3.16 (Symfony 2.x не будет работать с ним). В любом случае вы должны загрузить страницу проверки на http://you.site.name/config.php. Если у вас был проект, который не работал на сервере хостинга, следующие строки должны быть удалены в «config.php»:

 if (!in_array(@$_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1', ))) { header('HTTP/1.0 403 Forbidden'); exit('This script is only accessible from localhost.'); } 

Удачи!

Я избавился от того же сообщения об ошибке, что и в вашем случае, используя app / console_dev, а не просто приложение / консоль