如何使用特定的PHP代码(getDoctrine)来回显组合框?我试过了,结果真的不是预期的

如何使用特定的PHP代码(getDoctrine)来回显组合框?我试过了,结果真的不是预期的,php,symfony,Php,Symfony,我正在尝试生成一个组合框,其中包含数据库的值 为此,我决定在我的.html.twig中放入一个简单的php代码 这是密码 <?php $villes = $this->getDoctrine() ->getRepository('ProjetEsamuzeDiorBundle:Villes') ->findAll(); echo "<select name='ville

我正在尝试生成一个组合框,其中包含数据库的值

为此,我决定在我的.html.twig中放入一个简单的php代码

这是密码

<?php
            $villes = $this->getDoctrine()
            ->getRepository('ProjetEsamuzeDiorBundle:Villes')
            ->findAll();

            echo "<select name='ville'>";

            for ($i=0;$i<count($villes)-1;$i++)
            {
                echo "<option value='".$villes[$i]->getId()."'>".$villes[$i]->getNom()."</option>";
            }
            echo "</select>";
        ?>
请记住,这是直接在页面上的,好像刚才有回声,但没有。我想可能是$this,但是用$villes替换它会得到同样的结果

我也看不到,因为我看到的正是这个

getDoctrine() ->getRepository('ProjetEsamuzeDiorBundle:Villes') ->findAll(); echo "(combobox is empty here)"; ?>

我做错了什么?

不应该是$villes[$I]而不是$villes[I]?

你不能在细枝模板中使用PHP。Twig被解析并转换为PHP,但没有解释PHP代码。你必须使用细枝语法


此外,您真的不应该将逻辑放入模板中。Twig在阻止你这么做方面做得很好。数据库查询应转到控制器

使用来完成此任务。

很好,我在任何需要的地方都更改了它,但仍然给出相同的结果。哦,这也许可以解释,那么我应该如何达到我想要达到的目的呢?我对Symfony和php还是有点陌生,所以我需要一些指导,我用了这个:做我想做的事
getDoctrine() ->getRepository('ProjetEsamuzeDiorBundle:Villes') ->findAll(); echo "(combobox is empty here)"; ?>