2017-09-15 112 views
0

使用我试图用宏来添加一些向上和向下箭头用于在KnpPaginator使用的表排序。创建宏模板

我是新来的宏和DOC对我来说有点乏味,所以我会尽量展示和讲解我做了什么。

我创造了我的宏文件夹中的树枝被称为icons.html.twig包含我的宏

{% extends 'STBackofficeBundle::base.html.twig' %} 

{% macro icon_class(type) %} 
    {% set type_class = { 
     sort: 'fa-angle-down' 
    } %} 
    {{ type_class[type] }} 
{% endmacro %} 

我进口它在我的模板

{% import "STBackofficeBundle:Macros:icons.html.twig" as icons %} 

,并试图将其添加在表头

<th>{{ icons.icon_class('sort') }}</th> 

所以它并没有真正的工作,因为它显示的字符串fa-angle-down而不是图标本身。当我尝试删除引号时,我有一个错误。所以我不知道我做错了什么?

回答

1

它不工作,因为目前你只是打印类名。

<th> 
    <i class="fa {{ icons.icon_class('sort') }}" aria-hidden="true"></i> 
</th> 
+0

非常感谢你的工作! :)我接受了你的答案。我还有一个问题,如果点击时排序,我想让箭头变成“fa-angle-up”,当我再次单击时,它会变回“fa-angle-down”? –

+0

如果使用JS对entires进行排序,则应该使用JS将图标的类从'fa-angle-down'更改为'fa-angle-up'。 如果您使用的是PHP控制器做到这一点,你应该通过排序参数,URL,并根据该参数在模板呈现相应的图标。 –

+0

我使用KnpPaginator,并且我想避免使用js,因为我使用的是php。我不能在宏中用'if'来改变箭头吗?你有一个简单的例子来说明如何轻松做到这一点?因为我不太明白你想告诉我什么 –