2013-11-16 3 views
0

Я строю приложение с использованием Zend Framework и Doctrine 2.наследование классов не найден

Мой код выглядит следующим образом:

namespace Entities; 
use Doctrine\Common\Collections\ArrayCollection; 

/** 
* @Entity (repositoryClass="Repositories\Person") 
* @Table(name="persons") 
* @InheritanceType("SINGLE_TABLE") 
* @DiscriminatorColumn(name="type", type="string") 
* @DiscriminatorMap({"2"="User"}) 
*/ 
class Person 
{ 
    /** 
    * @Id @Column(type="integer") 
    * @GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

} 

И мой класс Пользователь

namespace Entities; 
use Doctrine\Common\Collections\ArrayCollection; 

/** 
* @Entity (repositoryClass="Repositories\User") 
*/ 
class User extends Person 
{ 

} 

Теперь, Я получаю эту ошибку:

Fatal error: Class 'Entities\Person' not found in C:\xamp\htdocs\Persons\application\m 
odels\Entities\User.php on line 13 

Я понятия не имею, почему я получаю эту ошибку. Я пробовал назвать класс «Личность» разными способами, но он не работает. Есть идеи? Благодаря!

ответ

1

При запуске в Zend Framework у вас есть установка автозагрузчика, которая динамически загружает классы для вас.

Когда вы запускаете только инструмент Doctrine из командной строки, у вас нет автозагрузчика в вашем распоряжении. Doctrine пытается загрузить класс User, для которого требуется Person, и все же он (по-видимому) не знает, как загрузить Person.

Я думаю, что простым решением было бы иметь require_once('Person.php'); в верхней части вашего пользовательского объекта. Это, вероятно, не нужно для ZF, но будет полезно для инструментов командной строки Doctrine.

+0

Hi. Я действительно изменил свой вопрос, потому что заметил, что это не происходит только тогда, когда я пытаюсь обновить Doctrine, но это также происходит с фреймворком. Может быть, проблема с автозагрузчиком? – raygo

+0

Похоже, да. Вы пробовали придерживаться require_once наверху в любом случае? Это может быть самый простой способ решить обе проблемы. – jszobody

+0

не было бы лишним? Я попробую это – raygo

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