繁体   English   中英

如何使用symfony2动态访问树枝模板中的对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM