首页 文章

Symfony2 - 在错误的地方寻找实体类?

提问于
浏览
2

我有两个实体,用户和课程 .

用户是Sonata用户的扩展,并且在

Application\Sonata\UserBundle\Entity\User

课程在我自己的包中“LessonBundle”

每个课程都由用户拥有,在现场导师下:

class Lesson
{
    /**
     * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="lessons")
     * @ORM\JoinColumn(name="tutor_id", referencedColumnName="id")
     */
    protected $tutor;

/**
     * Set tutor
     *
     * @param \Application\Sonata\UserBundle\Entity\User $tutor
     * @return Lesson
     */
    public function setTutor(\Application\Sonata\UserBundle\Entity\User $tutor = null)
    {
        $this->tutor = $tutor;

        return $this;
    }

    /**
     * Get tutor
     *
     * @return \Application\Sonata\UserBundle\Entity\User 
     */
    public function getTutor()
    {
        return $this->tutor;
    }
}

我有一个表单设置,可以为用户成功添加课程,但是当我尝试访问课程列表时:

$repository = $this->getDoctrine()
                        ->getRepository('LessonBundle:Lesson');

//Problem is triggered here
$lessons = $repository->findAll();

我收到以下错误:

Class LessonBundle\Entity\User does not exist

/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php中的堆栈跟踪
在第233行 - } //我们需要选择类型提示类if(($ paramClass = $ param-> getClass())!== null){$ parameterString . ='' . $ paramClass-> getName() . ''; } else if($ param-> isArray()){$ parameterString . ='array';在ReflectionParameter - > getClass()在/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php第233行 - 在ProxyFactory - > _ generateMethods(object(ClassMetadata))in第155行/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php - 在ProxyFactory - > generateProxyClass(object(ClassMetadata),'/ home / dan / sites / mysite /app/cache/dev/doctrine/orm/Proxies/CG_LessonBundleEntitySubject.php','; / ** *这个类是由DOCTRINE ORM生成的 . 不要编辑这个文件 . * / class extends \ implement \ Doctrine \ ORM \ Proxy \ Proxy {private $ _entityPersister; private $ identifier; public $ _isInitialized = false; public function construct($ entityPersister,$ identifier){$ this - > _ entityPersister = $ entityPersister; $ this - > _ identifier = $ identifier;} / * * @private * / public function _load(){if(!$ this - > _ isInitialized && $ this - > _ entityPersister){$ this-> isInitialized = true; if(method_exists($ this,“wakeup”)){//在_isInit之后调用它ialized_to避免无限递归//但在加载之前模拟ClassMetadata :: newInstance()//提供的内容 . $这 - > __唤醒(); if($ this - > _ entityPersister-> load($ this - > _ identifier,$ this)=== null){throw new \ Doctrine \ ORM \ EntityNotFoundException(); } unset($ this - > _ entityPersister,$ this - > _ identifier); } / ** @private * / public function _isInitialized(){return $ this - > _ isInitialized; public function sleep(){} public function _clone(){if(!$ this - > _ isInitialized && $ this - > _ entityPersister){$ this-> isInitialized = true; $ class = $ this - > _ entityPersister-> getClassMetadata(); $ original = $ this - > _ entityPersister-> load($ this - > _ identifier); if($ original === null){throw new \ Doctrine \ ORM \ EntityNotFoundException(); } foreach($ class-> reflFields as $ field => $ reflProperty){$ reflProperty-> setValue($ this,$ reflProperty-> getValue($ original)); } unset($ this - > _ entityPersister,$ this - > _ identifier);在/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php第90行 - 在ProxyFactory - > getProxy('LessonBundle \ Entity \ Subject',数组('id'=>'1'))位于/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php第2576行 - 在UnitOfWork - > createEntity('LessonBundle \ Entity \ Lesson',array('id'=>'1','date'=> object(DateTime),'time'=> object(DateTime),'objective'=>'test','created_at'=> object(DateTime),'updated_at'=> object(DateTime),'tutor_id'=>'1','service_id'=>'1','trip_id'=>'1','subject_id'=>'1' ,'location_id'=>'1'),array('deferEagerLoads'=> true,'fetchMode'=> array('LessonBundle \ Entity \ Lesson'=> array('tutor'=>'2','service' =>'2','trip'=>'2','subject'=>'2'))))/ home / dan / sites / mysite / vendor / doctrine / orm / lib / Doctrine / ORM / Internal /Hydration/SimpleObjectHydrator.php在第135行 - 在SimpleObjectHydrator - > hydrateRowData(array('id1'=>'1','date2'=>'2013-02-09','time3'=> '00:00: 00 ','objective4'=>'test','created_at5'=>'2013-02-09 12:19:27','updated_at6'=>'2013-02-09 12:19:27','tutor_id7' =>'1','service_id8'=>'1','trip_id9'=>'1','subject_id10'=>'1','location_id11'=>'1'),数组('id1'=> array('class'=> object(ClassMetadata),'name'=>'id','field'=> true),'date2'=> array('class'=> object(ClassMetadata),'name'= >'date','field'=> true),'time3'=> array('class'=> object(ClassMetadata),'name'=>'time','field'=> true),'objective4' => array('class'=> object(ClassMetadata),'name'=>'objective','field'=> true),'created_at5'=> array('class'=> object(ClassMetadata),'name '=>'created_at','field'=> true),'updated_at6'=> array('class'=> object(ClassMetadata),'name'=>'updated_at','field'=> true),' tutor_id7'=> array('name'=>'tutor_id'),'service_id8'=> array('name'=>'service_id'),'trip_id9'=> array('name'=>'trip_id'), 'subject_id10'=>数组(DEEP NESTED ARRAY),'location_id11'=>数组(DEEP NESTED ARRAY)),ar ray())在/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php第50行 - 在SimpleObjectHydrator - > hydrateAllData()在/ home / dan / sites / mysite / vendor / doctrine / orm / lib / Doctrine / ORM / Internal / Hydration / AbstractHydrator.php第111行 - 在AbstractHydrator - > / home / dan / sites / mysite / vendor / doctrine / orm / lib / Doctrine / ORM / Persisters / BasicEntityPersister中的hydrateAll(object(PDOStatement),object(ResultSetMapping),array('deferEagerLoads'=> true)) . php在第848行 - 在BasicEntityPersister - > loadAll(array(),null,null,null)在/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php第157行 - at EntityRepository - > findBy(array())位于第141行的/home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php - 在EntityRepository - > / home /中的findAll()第21行的dan / sites / mysite / src / LessonBundle / Controller / LessonController.php - LessonController - > kernel.root_dir中的call_user_func_array(array(LessonController),'listAction'),array())中的listAction()第1426行的bootstrap.php.cache - 在HttpKernel - > handleRaw(object(Request),'1')在第1390行的kernel.root_dir / bootstrap.php.cache中 - 在HttpKernel - > handle(object(Request),' 1',true)在kernel.root_dir / bootstrap.php.cache中第1566行 - 在HttpKernel - >句柄(对象(请求),'1',真),在第617行的kernel.root_dir / bootstrap.php.cache中 - 在/ home / dan中的内核 - >句柄(对象(请求))第29行/sites/mysite/web/app_dev.php -

我不确定为什么它在LessonBundle而不是Application \ Sonata \ UserBundle中寻找User类 .

任何建议表示赞赏

谢谢

1 回答

  • 0

    找到了 . 在一个完全不同的类中错误的位置引用了类!

相关问题