Doctrine mapping не работает должным образом

1

У меня проблемы с надстрочным надкладом. Когда я выполняю команду symfony:

php app/console doctrine:mapping:info

Я получаю это сообщение об исключении:

[Doctrine\Common\Persistence\Mapping\MappingException]
Class 'DBiagi\EitaBundle\Entity\BaseFoo' does not exist

Странная часть состоит в том, что класс BaseFoo не находится в папке Entity, и этот класс является отображенным суперклассом. Вот мои файлы:

<?php    
# src/DBiagi/EitaBundle/Model/BaseFoo.php

namespace DBiagi\EitaBundle\Model;

/**
 * Description of BaseFoo
 *
 */
abstract class BaseFoo implements BaseFooInterface{

    private $id;
    private $name;

    public function getId(){
        return $this->id;
    }

    public function getName(){
        return $this->name;
    }
}

Определение отображения:

# src/DBiagi/EitaBundle/Resources/doctrine/BaseFoo.orm.yml
DBiagi\EitaBundle\Model\BaseFoo:
    type: mappedSuperclass
    fields:
        id:
            id:
                type: integer
                id: true
                generator:
                    strategy: AUTO
        name:
            type: string
            length: 255

Обратите внимание, что класс DBiagi\EitaBundle\Entity\BaseFoo не существует на самом деле, а класс BaseFoo живет в папке Model, поэтому возникает вопрос: почему doctrine пытается загрузить этот класс? Из-за этого исключения я не могу получить мои объекты. Помощь будет очень оценена. Благодарю.

Теги:
doctrine
mapping
doctrine2

1 ответ

1
Лучший ответ

Вы должны установить правильное пространство имен для объектов вашего пакета в основной конфигурации приложения. Предположим, вы используете yml config, smth вроде:

orm:
    entity_managers:
        default:
            mappings:
                DBiagiEitaBundle:
                    prefix: DBiagi\EitaBundle\Model
  • 0
    Спасибо, чтобы указать мне в правильном направлении. В разделе доктрины документации Symfony есть учебник, показывающий, как изменить папку сущностей по умолчанию. Это решило мою проблему. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню