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 | 151
 
"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
 
to je v poradku, to jsou vygenerovane tridy, ktere dedi tu tvoji entitu. jsou tam kvuli vnitrnim potrebam doctriny