我正在尝试生成一个包含数据库值的组合框。
为此,我决定在我的.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>";
?>
这是
的输出getDoctrine() ->getRepository('ProjetEsamuzeDiorBundle:Villes') ->findAll(); echo ""; for ($i=0;i".$villes[i]->getNom().""; } echo ""; ?>
请记住,这是直接在页面上,好像之前有一个回声,但没有。我想也许这是$ this,但用$ villes替换它会产生相同的结果
此外,我没有看到我所看到的正是这个
getDoctrine() ->getRepository('ProjetEsamuzeDiorBundle:Villes') ->findAll(); echo "(combobox is empty here)"; ?>
我做错了什么?
答案 0 :(得分:2)
您不能在twig模板中使用PHP。解析Twig并将其转换为PHP但不解释PHP代码。你必须使用twig语法。
此外,你真的不应该把逻辑放到模板中。 Twig做得很好,阻止你这样做。数据库查询应该转到控制器。
答案 1 :(得分:0)
不应该是$ villes [$ i]而不是$ villes [i]?
答案 2 :(得分:0)
使用entity form type执行此任务。