2017-09-15 6 views
0

매크로를 사용하여 KnpPaginator와 함께 사용되는 테이블의 정렬을 위아래 화살표로 추가하려고합니다.템플릿에서 사용할 매크로 만들기

저는 매크로가 처음인데 의사는 저를 지루하게 생각합니다. 그래서 설명하고 보여 주려고 노력할 것입니다.

나는 포함 icons.html.twig라고 내 매크로 폴더에 나뭇 가지를 만들어 내 내 템플릿

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

에서 수입하고 테이블 헤더에 추가하려고

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

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

매크로

<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를 사용하여 엔트리를 정렬하는 경우 JS를 사용하여 아이콘의 클래스를'fa-angle-down'에서'fa-angle-up'으로 변경해야합니다. PHP 컨트롤러를 사용하는 경우 URL에 정렬 매개 변수를 전달하고 해당 매개 변수에 따라 템플릿의 해당 아이콘을 렌더링해야합니다. –

+0

나는 KnpPaginator를 사용하고 있으며 PHP를 사용함에 따라 js 사용을 피하고 싶습니다. 내 매크로에서 화살표를 변경하기 위해'if'를 사용하여 조건을 수행 할 수 있습니까? 그것을 쉽게하는 방법에 대한 간단한 예가 있습니까? 네가 나에게 말하는 것을 이해하지 못하기 때문에. –