Article (ManyToOne)을 사용하여 Steps (OneToMany) 및 Steps와 관계가있는 테이블 기사가 있습니다.Doctrine/Symfony2 관계에있는 테이블에서 데이터를 가져옵니다.
내가 함께 기사를 얻을 :
$articles = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Article")
->findAll();
그리고 foreach 문에 나는 모든 기사 및 단계 보여주고 싶은 : 나는 테이블을 usign 테이블 단계에서 데이터를 가져 오는 방법을 모르는
foreach($articles as $article)
{
$steps = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Steps")
->createQueryBuilder('s')
->where('s.article = \''.$article.'\'')
->getQuery()
->execute();
echo "<b>".$article->getTitle()."</b><br />";
echo $article->getText()."<br />";
}
을 Doctrine으로 생성 된 기사 및 메소드 getSteps().
도와주세요.
답변 해 주셔서 감사합니다. 테이블 조에서
내가 가진 :
/**
* @ORM\OneToMany(targetEntity="Steps", mappedBy="Steps",cascade={"persist"})
* @ORM\JoinColumn(name="id", referencedColumnName="id_article")
*/
protected $steps;
테이블 단계 :
/**
* @ORM\ManyToOne(targetEntity="Article", inversedBy="steps")
*
*/
protected $article;
내가 할 경우 :
$articles = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Article")
->findAll();
내가 할 경우 :
foreach($articles as $article)
{
$steps = $article->getSteps();
나는 오류를받을 :
Notice: Undefined index: Steps in /var/www/design/vendor/doctrine/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1280
내가 그렇게한다면 :
이$articles = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Article")
->findAll();
foreach($articles as $article)
{
//Queries to DB
$steps = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Steps")
->findBy(array(
"article" => $article->getId()
));
$media = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Media")
->findBy(array(
"step" => $steps[0]->getId()
));
내가 필요한 데이터를 얻을 수 있지만, 여기에 DB에 더 질문입니다. 당신이 제 모델에서 다음과 같은 관계가 있다고 가정
함께 몇 가지 더 모범 사례를 넣어 저장소에 있으므로 같은 방법을 넣을 수 있습니다,하지만 난 본능적으로 시도 할 것 '$ article-> getSteps();'. 너 그거 해봤 니? – AJJ
예, 시도했지만 수신 및 오류. 덕분에 –