我正在尝试向/从数据库学习读/写数据,我遇到了一个很大的问题:
我的实体看起来:
类别:
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
那么,请告诉我我的代码有什么问题?
答案 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;