2014-01-10 2 views
0

После нескольких месяцев работы, я получаю эту ошибку, когда пытаюсь запустить команду с терминала. «X» - это пользовательский объект, расширяющий FOSUserBundle.Symfony2 - Класс X не является допустимым сущностью или отображенным суперклассом

Рассматривая некоторые из подобных вопросов здесь, общие ошибки кажутся неправильными аннотациями, а не регистрацией пакета в AppKernel или невозможностью включения auto_mapping в конфигурации.

Запускается класса пользователь (я не думаю, что свойства нужны?), Как это:

<?php 

namespace Acme\UserBundle\Entity; 

use FOS\UserBundle\Entity\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 
use Doctrine\Common\Collections\ArrayCollection; 
use Symfony\Component\Validator\Constraints as Assert; 

/** 
* @ORM\Entity 
* @ORM\Table() 
*/ 
class User extends BaseUser 
{ 
    // ... 
} 

Расслоение зарегистрирован в AppKernel:

$bundles = array(
     // ... 
     new Acme\UserBundle\UserBundle(), 
     // ... 
); 

Автоматическое отображение включено (и не отключены в конфигурациях _prod или _dev), как вы можете видеть здесь:

doctrine: 
    dbal: 
     driver: %database_driver% 
     host:  %database_host% 
     port:  %database_port% 
     dbname: %database_name% 
     user:  %database_user% 
     password: %database_password% 
     charset: UTF8 
    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     auto_mapping: true 

Pl нам FOSUserBundle сообщается правильному объекту:

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: Acme\UserBundle\Entity\User 

Не работает?

Я наткнулся на один вопрос здесь, где он был разрешен путем отключения eAccelerator. У нас есть Eaccelerator работает на сервере, но после очистки кэша я проверил локальное значение на выходе phpinfo() отключена при выполнении команды, как уже ожидалось:

eaccelerator.enable => 0 => 1 
eaccelerator.optimizer => 0 => 1 

Когда я бегу doctrine:mapping:info команда Я вижу, что мой UserBundle отсутствует. Я в полной мере проигрываю здесь, что отсутствует или неверно. Есть ли у кого-нибудь предложения? Стоит отметить, что интерфейс веб-сайта отлично работает, и он использует объект User.

+0

Вы пытались вручную указать местоположение сопоставления + тип (аннотация) вручную в 'config.yml'? Ключ конфигурации - 'doctrine.orm.entity_managers. <Имя-менеджера> .mapping' - см. [Ссылка на конфигурацию] (http://symfony.com/doc/current/reference/configuration/doctrine.html). ** дважды проверьте ** ваши пространства имен и очистите кеш. Пожалуйста, сообщите потом: – nifr

ответ

0

У меня возникла эта проблема, и было сонливой ошибкой удалить EntityRepository всей линией @Entity, вызывая ошибку «недействительной сущности».

Я много искал проблему с картой суперкласса FOSUserBundle:User, но проблема была в моем классе, я должен был знать, что когда он не появился на doctrine:mapping:info.

Смежные вопросы

 Смежные вопросы