Symfony2 + OneToMany - 从数据库错误中读取

时间:2013-01-04 06:47:48

标签: symfony orm one-to-many

我正在尝试向/从数据库学习读/写数据,我遇到了一个很大的问题:

我的实体看起来:

类别:

use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="kategorie")
 */
class Kategorie
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $idkategorii;

    /**
     * @ORM\Column(type="string", length=50)
     */
    protected $nazwa;

     /**
     * @ORM\OneToMany(targetEntity="Ogloszenia", mappedBy="ogloszenia")
     */
    protected $ogloszenia;

Ogloszenia:     使用Doctrine \ ORM \ Mapping作为ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="ogloszenia")
 */
class Ogloszenia
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id; 

    /**
     * @ORM\Column(type="string",length=100)
     */
    protected $tytul; 

    /**
     * @ORM\Column(type="string", length=120)
     */
    protected $tytul_seo; //tytul bez polskich znaków etc.

    /**
     * @ORM\Column(type="text")
     */
    protected $tresc; //tresc ogloszenia

    /**
     * @ORM\Column(type="string",length=50)
     */
    protected $dodal; //imie osoby ktora dodala ogloszenie

    /**
     * @ORM\Column(type="string", length=50)
     */
    protected $kontakt; //nr tel lub mail

    /**
     * @ORM\ManyToOne(targetEntity="Kategorie", inversedBy="kategoria")
     * @ORM\JoinColumn(name="kategoria", referencedColumnName="idkategorii")
     */
    protected $kategoria;

现在,在我的控制器中,我正在尝试读取所有值:

 public function odczytajAction()
    {  
        $id = 1;
        $kategoria = $this->getDoctrine()
                ->getRepository('FrontendOgloszeniaBundle:Kategorie')
                ->find($id);

        $ogl = $kategoria->getOgloszenia();
     foreach($ogl as $o)
     {
         print_r($o);
     }
       return new Response('test odczytu');

    }

不幸的是symfony2给了我一个跟随错误

 Notice: Undefined index: ogloszenia in /home/sl4sh/public_html/Projekt1/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1574
500 Internal Server Error - ErrorException 

那么,请告诉我我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您的mappedBy注释无效:

/**
 * @ORM\OneToMany(targetEntity="Ogloszenia", mappedBy="kategoria")
 */
protected $ogloszenia;

还有反面:

/**
 * @ORM\ManyToOne(targetEntity="Kategorie", inversedBy="ogloszenia")
 * @ORM\JoinColumn(name="kategoria", referencedColumnName="idkategorii")
 */
protected $kategoria;