簡體   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