我有两个实体,用户和课程。
用户是奏鸣曲用户的扩展,并且在
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 类。
任何建议表示赞赏。
谢谢