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