[英]How to dynamically access objects in a twig template with symfony2
我什至不知道这个问题用什么标题。 我从Web编程开始,我什至不知道我应该使用什么技术来做到这一点。
我在symfony2中有一个包含学说的数据库。 该数据库有画廊,每个画廊都有图像(两个表OneToMany关系)。
我正在将一系列画廊传递给树枝模板,在其中以选择的方式显示它们,因此我可以选择其中一个并将更多图像添加到画廊,添加新画廊或使用提交按钮删除它们。
现在可以使用此模板:
<select class="listGalleries" id="listGalleries" name='id' size="10">
{% for gallery in galleries %}
<option value="{{gallery.id}}" >{{gallery.name}}</option>
{% endfor %}
</select>
那在表格里面。
现在,我要做的就是每次单击选择的一项,在同一网页中显示所选画廊的所有图像。
我不知道应该使用哪种技术。 我可以用树枝做吗? 我需要学习ajax吗? 我想我必须去数据库读取属于该画廊的图片数据,但是我不知道该怎么做,或者symfony2是否为我提供了更好的解决方案。
每个建议将不胜感激。
“动态”无法用树枝完成,因为渲染后无法更改输出。
我认为您可以通过两种方式进行操作:
使用树枝在画廊内循环并输出它们,然后在更改选项时使用一些Javascript(如引导程序选项卡)显示每个画廊。 在bootstrap中,您可以这样做(假设gallery-> images关系在$ gallery-> images中):
<div class="tab-content">
{% for gallery in galleries %}
<div class="tab-pane active" id="gallery{{ gallery.id }}">
{% for image in gallery.images %}
<img src="{{ image.url }}" class="img-polaroid">
{% endfor %}
</div>
{% endfor %}
</div>
现在使用像
$("select#listGalleries").change(function () {
$("select option:selected").each(function () {
$("#gallery" + $(this).attr('value')).tab('show');
});
})
否则,您可以在从中选择图库后使用ajax返回图库图像,并在页面上的某个位置呈现这些图库图像。 这可以通过两种方式完成:呈现symfony中的html并仅使用javascript将输出放置在页面中,或者仅返回json(使用this ),然后在javascript中创建html(我个人使用很多pure )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.