如何使用symfony2动态访问树枝模板中的对象
How to dynamically access objects in a twig template with symfony2
我甚至不知道这个问题的标题是什么。我从网络编程开始,我甚至不知道我应该用什么技术来做这件事。
我有一个symfoy2中包含条令的数据库。这个数据库有库,每个库都有图像(两个表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是否为我提供了更好的解决方案。
我们将不胜感激。
"Dynamically"不能在trick中完成,因为在其渲染之后,无法更改输出。
在我看来,你可以用两种方式:
使用trick在库中循环并输出它们,然后在更改选项时使用一些类似于引导选项卡的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>
现在使用类似的javascript
$("select#listGalleries").change(function () {
$("select option:selected").each(function () {
$("#gallery" + $(this).attr('value')).tab('show');
});
})
否则,您可以在从中选择画廊后使用ajax返回画廊图像,并在页面上的某个位置渲染画廊图像。这可以通过两种方式实现,在symfony中渲染html,然后用javascript将输出放在页面中,或者只返回一个json(使用类似的东西),然后在javascript中创建html(我个人使用的是纯html)。
相关文章:
- 发送json对象或使用express路由呈现视图
- 在使用object.create创建的对象中使用super
- 如何在JavaScript中创建对象时使用变量的值
- Javascript在JSON中查找对象(我使用Angular)
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- HTML 对象在使用 ContentPlaceHolder 时在 Javascript 中显示为未定义
- 允许具有相同 id 的对象可以使用 jQuery 拖动
- 在选择对象中使用多个 add() 命令
- 在加载后创建的对象上使用 jQuery 选择器
- 在带有嵌入的对象中使用JavaScript刷新视频
- 如何将Underscore.js过滤器与对象一起使用
- 在 Javascript 对象中使用 HTML5 音频
- 如何在对象上使用trim函数来删除空白jquery
- 我该如何访问由gullow灰质插件创建的数据对象(当使用nunjucks编译html文件时)
- Javascript:当属性可能不存在时,在对象中使用OR条件
- 在多级json对象中使用变量作为键
- 在多个子对象上使用每个函数
- 为什么'这'与函数对象一起使用时会有不同的处理方式
- 如何在其他对象中动态生成javascript对象.你能在对象内部使用for循环吗
- 使用“new”关键字创建的对象和使用“Object.create”创建的对象给出不同的结果