2014-02-08 59 views
0

我有一个非常简单的问题给你(我认为)。Symfony Template(Twig)中的学说子查询

我想要在树枝模板中留言框。

{% for comment in comments %} 

... here ist html code for the box 

{% endfor%} 

怎么可能在每个评论条目中搜索其他内容,如子注释或类似投票的内容?在简单的PHP和HTML(不Symfony的),它会是这个样子:

while ($row = mysqli_fetch_assoc($query)) { 
    $sub_query= "SELECT for FROM bar WHERE id = $row['id']"; 
    $query = mysqli_query($db, $sub_query); 
    $sub_row = mysqli_fetch_assoc($query); 
?> 
    <div class="comment_box"> 
     // code for the box like <?= $row['date'] ?> or <?= $row['date'] ?> 
     // code for the subqueryed data like <?= $sub_row['voting_rate'] ?> or <?= $sub_row['sub_comment'] ?> 
    </div> 
<?php 
} 

什么是交响乐做到这一点的呢?它可能与Twig宏左右有关吗?

更多信息:

这里是简单的Controler:

/** 
* Lists all Comment entries. 
* 
* @Route("/", name="comment") 
* @Method("GET") 
* @Template() 
*/ 
public function indexAction() 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $comments = $em->getRepository('AcmeCommentBundle:Comment')->findAll(); 

    return array(
     'comments' => $comments, 
    ); 
} 

我希望好的答案)。

在此先感谢。 Michael

+0

假设你真的需要从树枝的内部执行查询,然后看看这里:http://symfony.com/doc/current/book/templating.html,向下滚动到嵌入式控制器部分。像@TomToms一样,如果您只需要相关实体(他的解决方案)或新的嵌入式查询。 – Cerad

回答

1

我有解决方案。

我想要的是一个embedded Controller;)。 所以我可以做任何我想知道的特殊信息,即使我在我的数据库中没有关系。

感谢&问候 迈克尔

+0

相关提示:)您可以通过接受自己的答案来关闭该主题,它可以帮助其他人解决同一个问题。 –

3

那么你想要访问你的实体的变量? 您可以简单地使用{{ comment.date }}

而要访问链接实体的变量,您可以做{{ comment.subcomment.date }},但是您需要在设置的评论和子注释实体之间建立关系。

在多对一或多对多的情况下(例如:对于给定的评论多subcomment)的关系,你也可以做这样的事情

{% for subcomment in comment.subcomments %} 
    {{ subcomment.date }} 
{% endfor %} 

或者,如果你需要一个特定的subcomment之类的东西

{{ comment.subcomments[1].date }} 

如果我脱离主题,您的问题并不十分清楚。 在任何情况下,我会建议阅读文档在这里:http://symfony.com/doc/master/book/index.html

+0

哦,谢谢。但是我的问题真的很糟糕。 :)想知道,是否可以在没有数据库关系**的情况下在评论实体**的for-circle **内获取数据**。但是,谢谢。 – Slowwie