03/03/2016 - SYMFONY, TWIG
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.
İ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 %}
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