Kdyby Doctrine a vztahy tabulek

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

Zdravím.

Snažím se naučit pracovat s Kdyby/Doctrine a zasekl jsem na na vazbách. Pročetl jsem dost článků a nejsem schopen zprovoznit jednoduchou jednosměrnou vazbu.

Dostávám chybu
Doctrine\Common\Annotations\AnnotationException

[Semantical Error] The annotation "@Doctrine\ORM\Mapping\manyToOne" in property App\Model\Article::$category does not exist, or could not be auto-loaded.

V DB mám u article.category_id cizí klíč na category.id

Article.php

<?php
	namespace App\Model;

	use Doctrine\ORM\Mapping as ORM;

	/**
	 * @ORM\Table(name="article")
	 * @ORM\Entity
	 */
	class Article extends \Kdyby\Doctrine\Entities\BaseEntity
	{
	    /**
	     * @ORM\Id
	     * @ORM\Column(type="integer")
	     * @ORM\GeneratedValue
	     *
	     * @var int
	     */
	    private $id;

	    /**
	     * @ORM\Column(type="text")
	     */
	    private $text;

	    /**
	     * @ORM\Column(type="string")
	     */
	    private $title;

	    /**
	     * @ORM\Column(type="string")
	     */
	    private $hash;

	    /**
	     * @ORM\manyToOne(targetEntity="Category")
	     * @ORM\joinColumn(name="category_id", referencedColumnName="id")
	     */
	    private $category;


	}

Category.php

<?php
	namespace App\Model;

	use Doctrine\ORM\Mapping as ORM;

	/**
	 * @ORM\Table(name="category")
	 * @ORM\Entity
	 */
	class Category extends \Kdyby\Doctrine\Entities\BaseEntity
	{
	    /**
	     * @ORM\Id
	     * @ORM\Column(type="integer")
	     * @ORM\GeneratedValue
	     *
	     * @var int
	     */
	    private $id;

	    public function getId()
	    {
	    	return $this->id;
	    }
	}

Co dělám prosím špatně?

Tomáš Votruba
Moderator | 1114
+
+3
-

Ahoj, jako první vidím manyToOne → zkus ManyToOne. Stejně tak joinColumnJoinColumn.

Doporučuji používat IDE (PhpStorm), ten tyhle drobnosti hlídá sám.

Editoval Tomáš Votruba (24. 6. 2015 2:15)

David Kudera
Člen | 455
+
+3
-

Tomáš Votruba napsal(a):

Doporučuji používat IDE (PhpStorm), ten tyhle drobnosti hlídá sám.

S pluginem PHP Annotations ;-)

kejlicz
Člen | 201
+
0
-

Díky moc. Všechno šlape. Proč musí člověk strávit nejvíc času zaseklej na takových prkotinách :-)