2

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

用户是奏鸣曲用户的扩展,并且在

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

堆栈跟踪

in /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php

at line 233 -+ } // 我们也需要选择类型提示类 if (($paramClass = $param->getClass()) !== null) { $parameterString .= '\' . $paramClass->getName() 。' '; } else if ($param->isArray()) { $parameterString .= 'array '; 在 /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php 中的 ReflectionParameter ->getClass () 第 233 行 -+ 在 ProxyFactory ->_generateMethods (object(ClassMetadata))在 /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php 在第 155 行 -+ 在 ProxyFactory ->generateProxyClass (object(ClassMetadata), '/home/dan/sites/mysite/app/cache/dev/doctrine/orm/Proxies/ CG _LessonBundleEntitySubject.php', '; /** * 这个类是由 DOCTRINE ORM 生成的。不要编辑这个文件。*/ 类扩展\实现\Doctrine\ORM\Proxy\Proxy { private $_entityPersister; private $ identifier; public $ _isInitialized = false; public functionconstruct ($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")) { // 在 _isInitialized 之后调用它 _避免无限递归 // 但在加载之前模拟 ClassMetadata::newInstance() // 提供的内容。$this->__wakeup(); } 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=真;$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' , array('id' => '1')) 在 /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php 在第 2576 行 -+ 在 UnitOfWork ->createEntity (' LessonBundle\Entity\Lesson',数组('深嵌套阵列),'location_id11' => 阵列(深嵌套阵列)), array()) 在 /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 -> hydraAll (object(PDOStatement), object(ResultSetMapping), array( 'deferEagerLoads' => true)) 在 /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php 第 848 行 -+ 在 BasicEntityPersister ->loadAll (array(), null, null, null) 在 /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php 第 157 行 -+ 在 EntityRepository ->findBy (array()) in /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php 在第 141 行 -+ 在 EntityRepository ->findAll () in /home/dan/sites /mysite/src/LessonBundle/Controller/LessonController.php 在第 21 行 -+ 在 LessonController ->listAction () at call_user_func_array (array(object(LessonController), 'listAction'), array()) in kernel.root_dir/bootstrap。 php.cache 在第 1426 行 -+ 在 HttpKernel ->handleRaw (object(Request), '1') 在 kernel.root_dir/bootstrap.php.cache 在第 1390 行 -+ 在 HttpKernel ->handle (object(Request), ' 1', true) 在 kernel.root_dir/bootstrap.php.cache 第 1566 行 -+ 在 HttpKernel ->handle (object(Request), '1', true) in kernel.root_dir/bootstrap.php。缓存在第 617 行 -+ 在内核 ->handle (object(Request)) in /home/dan/sites/mysite/web/app_dev.php 在第 29 行 -+

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

任何建议表示赞赏。

谢谢

4

1 回答 1

0

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

于 2013-02-10T11:09:54.397 回答