User と Lesson の 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
スタックトレース
in /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php
233 行目 -+ } // タイプ ヒント クラスも選択する必要があります。$paramClass->getName() . ' '; } else if ($param->isArray()) { $parameterString .= '配列'; /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 によって生成されました。 DO NOT EDIT THIS FILE. */ class extends \ implements \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 ")) { // これを _ isInitialized _to 無限再帰を回避した後、 // ただし 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', array('DEEP NESTED ARRAY ), 'location_id11' => array( DEEP NESTED ARRAY))、array()) /home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php の 50 行目 -+ SimpleObjectHydrator で ->hydrateAllData () in / home/dan/sites/mysite/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php 111 行目 -+ AbstractHydrator で ->hydrateAll (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()) /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. 1426 行の php.cache -+ HttpKernel ->handleRaw (object(Request), '1') in kernel.root_dir/bootstrap.php.cache 行 1390 -+ HttpKernel ->handle (object(Request), ' 1566 行目の kernel.root_dir/bootstrap.php.cache の 1', true) -+ HttpKernel で ->kernel.root_dir/bootstrap.php のハンドル (object(Request), '1', true)。cache at line 617 -+ at Kernel ->handle (object(Request)) in /home/dan/sites/mysite/web/app_dev.php at line 29 -+
Application\Sonata\UserBundle ではなく、LessonBundle で User クラスを探している理由がわかりません。
アドバイスをいただければ幸いです。
ありがとう