Symfony2,KnpPagination Bundle:使用图标进行排序



我正在使用KNP血管新生仪捆绑包,对此非常满意。

但我找不到如何用图标而不是文本替换顶部的排序器。这是我的Twig代码:

    {% block pagination_head %}
    <thead>
    <tr>
        <th>{{ pagination.sortable('likes', 'u.likePoints')|raw }}</th>
        <th>{{ pagination.sortable('title', 'u.title')|raw }}</th>
        <th>{{ pagination.sortable('date', 'u.created')|raw }}</th>

    </tr>
    </thead>
    {% endblock %}

那么,我需要做什么,得到一个重击图标,而不是"喜欢"这个词?我试着把<img src...>放进去,但无济于事。

首先,您需要一个拇指向上的图像资产。假设你确实得到了一个并放在这里:web/images/like.png

那么您所需要做的就是(假设pagination.sortable('likes', 'u.likePoints')返回字符串"like"):

<th>{{ asset( "images/" ~ pagination.sortable('likes', 'u.likePoints') ~ ".png" }}</th>

当然,出于封装/组织目的,您可能希望将图像资源放在捆绑包中,并使用assets:install web发布它。

编辑

有很多方法可以解决你所说的问题。其中之一是制作一个宏。

在您的\Bundle\Resources\views\Macros\bootstrap.html.twig 中

{% macro icon_class( type ) %}
  {% set type_class_map = {
    like: 'icon-user'
  } %}
  {{ type_class_map[type] }}
{% endmacro %}

然后,在模板中,你需要它在中

{% import "YourBundle:Macros:bootstrap.html.twig" as bootstrap %}
{% set heading = pagination.sortable('likes', 'u.likePoints') %}
<th class="{{ bootstrap.icon_class(heading) }}">{{ heading }}</th>

相关内容

  • 没有找到相关文章

最新更新