Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Twig içinde normal PHP fonksiyonu kullanıyormuş gibi, twig macro kullanabilirsiniz. Aşağıdaki örnek, içinde sorgu parametreleri olan dinamik urller yaratmak için kullanılır. Daha fazla bilgi için macro sayfasını okuyabilirsiniz.


Macro


İlgili linklere tıkladığımızda, a href tagındaki sort_by ve sort_direction parametrelerini değiştireceğiz.


{% macro sortColumn(label, field, direction) %}
{% if app.request.get('sort_direction') is defined %}
{% set direction = app.request.get('sort_direction') == 'asc' ? 'desc' : 'asc' %}
{% endif %}

<a href="{{ path(app.request.attributes.get('_route'),
app.request.query.all|merge({'sort_by': field, 'sort_direction': direction})) }}">{{ label }}</a>
{% endmacro %}
{% import _self as table %}

Test


Sort By 'sender' link appears here: {{ table.sortColumn('Sender', 'sender', 'asc') }}
Sort By 'receiver' link appears here: {{ table.sortColumn('Receiver', 'receiver', 'asc') }}

Şu anki adresimizin app_test.php/emails?type=delivered olduğunu varsayalım. Sayfamızdaki "sender" ve "receiver" linklerini tıkladığımızda, aşağıdaki sayfalara yönlendirileceğiz.


app_test.php/emails?type=delivered&sort_by=sender&sort_direction=asc
app_test.php/emails?type=delivered&sort_by=sender&sort_direction=desc
app_test.php/emails?type=delivered&sort_by=receiver&sort_direction=asc
app_test.php/emails?type=delivered&sort_by=receiver&sort_direction=desc