knp 分页器可在 select 下拉列表中排序

knp paginator sortable in select dropdown

我将可排序链接布局更改为 select 下拉菜单。但是我不知道如何让 selected 选项成为 selected.

到目前为止,这是我的代码。 我将 sortable.link htwl 树枝更改为这个

<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %} >{{ title }}</option>

我的树枝文件如下所示:

<select onChange="window.location=this.value;">
{{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
{{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
</select>

下拉菜单 onchange 有效,但在再次加载时不显示 selected 选项。请指教 :) 也许这也不是设置 select 下拉列表的最佳方式。非常感谢我的代码的任何改进


编辑

我查看了其他模板示例,发现您可以获取方向和顺序,它还不能完全与 asc/desc 一起使用,它出错了。 这是我更新的选项代码。

<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %}  {% if app.request.get('direction') == 'desc' and app.request.get('sort') == key  %} selected="selected" {% elseif app.request.get('direction') == 'asc' and app.request.get('sort') == key %} selected="selected"{% else%} no{% endif %}>{{ title }}</option>

然后我在 twig

上更新了 select
 <select onChange="window.location=this.value;">
    {{ knp_pagination_sortable(properties, 'Title A-Z', 'a.title', {}, {'direction': 'asc'}) }}
    {{ knp_pagination_sortable(properties, 'Title Z-A', 'a.title', {}, {'direction': 'desc'}) }}
    {{ knp_pagination_sortable(properties, 'price (low to high)', 'a.price', {}, {'direction': 'asc'}) }}
    {{ knp_pagination_sortable(properties, 'Price (high to low)', 'a.price', {}, {'direction': 'desc'}) }}
    </select>

感谢您的帮助。谢谢

我想我可以回答我自己的问题。 我只需要抓住方向而不是 desc/asc.

我认为它有效:)

<option{% for attr, value in options %} {% if attr == 'href' %}value="{{ value }}" {% else %}{{ attr }}="{{ value }}"{% endif %}{% endfor %}  {% if app.request.get('direction') == direction and app.request.get('sort') == key  %} selected="selected" {% endif %}>{{ title }}</option>