【发布时间】:2014-01-13 15:22:11
【问题描述】:
我想从数据库中的表中检索城市名称,并将它们作为选项放在 'layout.html.twig' 中定义的选择输入(组合框)中。我所有的视图都扩展了“layout.html.twig”,那么如何访问每个页面中的城市名称?
[解决方案]
我无法回应我的主题,我没有太多的声誉,所以我编辑了我的主题
我找到了解决方案,使用"embedding controllers"
-
首先我创建了一个动作来检索所有城市名称:
public function listCitiesAction(){ // retreiving cities $entities = $this->getDoctrine()->getRepository("MedAdBundle:City")->findAll(); return $this->render('MedAdBundle:Ville:list_cities.html.twig', array('entities' => $entities)); } -
这个动作渲染 list_cities.html.twig 定义为:
<select class="form-control"> {% for entity in entities %} <option>{{ entity.name}}</option> {% endfor %} </select> -
最后我编辑了我的 layout.html.twig
<div> {{ render(controller('MedAdBundle:City:listCities'))}} </div>
通过这种方式,我可以在我的应用程序的每个页面中访问城市组合框;)
【问题讨论】:
-
您可以使用全局 twig-variable symfony.com/doc/current/cookbook/templating/… 而应在表单中使用自动完成功能,例如:stackoverflow.com/questions/11962613/…
标签: php symfony doctrine-orm twig