Symfony, Knp Paginator Bundle:使用图标排序
Posted
技术标签:
【中文标题】Symfony, Knp Paginator Bundle:使用图标排序【英文标题】:Symfony2, KnpPagination Bundle:Sorting using icons 【发布时间】:2012-07-12 15:27:13 【问题描述】:我正在使用 KNPPanginator Bundle,对它非常满意。
但我不知道如何用图标而不是文本替换顶部的分拣机。这是我的树枝代码:
% 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...>
,但没有帮助。
【问题讨论】:
【参考方案1】:嗯,首先你需要有一个竖起大拇指的图片资源。假设您确实得到了一个并将其放在这里:web/images/like.png
那么你需要做的就是这个(假设pagination.sortable('likes', 'u.likePoints')
返回字符串“like”):
<th> asset( "images/" ~ pagination.sortable('likes', 'u.likePoints') ~ ".png" </th>
当然,出于封装/组织目的,您可能希望将图像资源放入您的包中并使用assets:install web
发布它。
编辑
有很多方法可以解决您所说的问题。一种是创建macro。
在 Your\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>
【讨论】:
好吧,我正在使用 twitter bootstrap 作为图标,所以我宁愿使用类似 之类的东西来表示图标。 感谢您的想法。我在这里做了代码pastebin.com/taJZtZQq,但后来我得到了错误: Key " likePoints a> " 用于带有键 "likePoints" 的数组在第 5 行的 /coding/mynewsite/src/Tracker/MembersBundle/Resources/views/Macros/bootstrap.html.twig 中不存在......所以它似乎期望不同形式的数组。以上是关于Symfony, Knp Paginator Bundle:使用图标排序的主要内容,如果未能解决你的问题,请参考以下文章