ステップ (OneToMany) と関連付けられているテーブル Article と、Article ManyToOne を含む Steps があります。
次の記事を取得します。
$articles = $this->getDoctrine()
->getRepository("IftodiDesignBundle:Article")
->findAll();
foreach を使用して、すべての記事と手順を表示したいと思います。
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 で生成されたテーブル Article とメソッド getSteps() を使用してテーブル Steps からデータを取得する方法がわかりません。
私を助けてください。
答えてくれてありがとう。
私が持っている表の記事では:
/**
* @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 への問い合わせは以上です。