Kdyby\Doctrine – EntityDao vrací Kdyby\GeneratedProxy\__CG__\<ClassName>

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
thm
Člen | 147
+
0
-

"Zdravím Vás.
od včerejška se začínám učit Doctrine2. Ty základy mi fungují, ale děje se mi divná (podle mně) věc.
Entity:

namespace App\Model;

use Doctrine\ORM\Mapping as ORM;


/**
 * @ORM\Entity
 */
class Article
{
      use \Kdyby\Doctrine\Entities\MagicAccessors;
      use \Kdyby\Doctrine\Entities\Attributes\Identifier;

      /** @ORM\Column(type="string") */
      protected $name;

      /** @ORM\Column(type="integer")*/
      protected $rank;

      /** @ORM\ManyToOne(targetEntity="Category") */
      protected $category;

      /** @return string */
      public function getFullName()
      {
            return $this->id.'#'.$this->name;
      }


}
namespace App\Model;

use Doctrine\ORM\Mapping as ORM;


/**
 * @ORM\Entity
 */
class Category
{
      use \Kdyby\Doctrine\Entities\MagicAccessors;
      use \Kdyby\Doctrine\Entities\Attributes\Identifier;

      /** @ORM\Column(type="string") */
      protected $name;


}

Presenter

class HomepagePresenter extends BasePresenter
{
	  /** @var \Kdyby\Doctrine\EntityDao */
	  private $articles;

	  /** @var \Kdyby\Doctrine\EntityDao */
	  private $categories;

      public function startup()
      {
            parent::startup();
            $this->articles = $this->em->getRepository(\App\Model\Article::getClassName());
            $this->categories = $this->em->getRepository(\App\Model\Category::getClassName());

      }

      public function renderDefault()
      {
            $this->template->articles = $this->articles->findAll();
            $this->template->categories = $this->categories->findAll();

            $category = $this->categories->find(1);
            dump('Category 1',$category);

            $article = $this->articles->find(1);
            dump('Article 1',$article);

            dump('Category form Article Entity',$article->category);
      }

Dumpy vypíší:

"Category 1" (10)
Kdyby\GeneratedProxy\__CG__\App\Model\Category #5dcd

"Article 1" (9)
App\Model\Article #d4ba

"Category form Article Entity" (28)
Kdyby\GeneratedProxy\__CG__\App\Model\Category #5dcd

Proč je $category Kdyby\GeneratedProxy\__CG__\App\Model\Category a ne \App\Model\Category?
Pokud je to v pořádku proč se tak děje?

Pokud tyto přiřazení a dumpy provedu na konci startup(), tak je vše v pořádku:

"Category 1" (10)
App\Model\Category #5ce2

"Article 1" (9)
App\Model\Article #5422

"Category form Article Entity" (28)
App\Model\Category #5ce2

Pokud tyto přiřazení a dumpy nechám i ve startup() a v renderDefault(), tak je vše také v pořádku.

Editoval thm (7. 4. 2016 13:27)

David Matějka
Moderator | 6445
+
0
-

to je v poradku, to jsou vygenerovane tridy, ktere dedi tu tvoji entitu. jsou tam kvuli vnitrnim potrebam doctriny

thm
Člen | 147
+
0
-

Aha, díky. Takže si toho nemusím všímat, když je to poděděná třída od mé entity.