Twig 需要上下文的细枝函数

Twig 需要上下文的细枝函数,twig,slim,Twig,Slim,我需要在我的函数的needs\u context中获取current\u页面。 它工作正常,但需要\u上下文保持为空 我的类助手扩展\Twig\u扩展 class Helpers extends \Twig_Extension { public function getName() { return 'Helpers'; } public function getFunctions() { return [ new \Twig_SimpleFunction('

我需要在我的函数的
needs\u context
中获取
current\u页面。
它工作正常,但
需要\u上下文
保持为空

我的类助手扩展\Twig\u扩展

class Helpers extends \Twig_Extension {

public function getName() {
    return 'Helpers';
}

public function getFunctions() {
    return [
        new \Twig_SimpleFunction('activeClass', [
            $this,
            'activeClass'
        ], [
            'needs_context' => true
        ])
    ];
}

  public function activeClass($context, $page) {
    if (isset($context['current_page']) && $context['current_page'] === $page){
        return ' active ';
    }
}
在我的.twig文件中

我希望使用此函数可以为导航栏中的当前href返回
active
类。我使用SlimV3和他的扩展细枝视图

谢谢你的帮助。

我解决了这个问题。 因为我使用了一个细枝的扩展来表示纤细和没有细枝,这是不同的。 通常,我们使用
needs\u context
来提取
当前页面的值。
但是对于Slim PHP的Twig视图,我们可以使用
{%if is_current_path('your_page')%%}class=“active”{%endif%}


衷心感谢@martias和@DarkBee的帮助

什么是当前页面?你说
needs\u context
保持为空是什么意思?Hi@martias 1)
current\u page
needs\u context
数组中的一个键,它返回当前页面。2) 如果我执行
vardump($context)
,它将不返回任何内容。谢谢,教授,我还是不太明白你想做什么。我认为
needs\u context
不是数组,而是一个值为
true
false
的选项。它告诉Twig函数(
activeClass
)是否需要访问函数中的当前上下文。如果
var\u dump($context)
不显示任何内容,那么
当前页面
存储在哪里?另外,在
{{activeClass('foo')}
中的
'foo'
是什么?1)你是对的,
需要的上下文不是数组。但是,如果它为true,则在callaback中返回一个数组。在这个数组中,我们有键
current\u page
,它返回我们网站的当前页面。2)
foo
是我的函数activeClass中参数$name的值。如果需要,请参阅我下面的教程。对不起,这是法语的,但你更容易理解我的意思。为了更清楚,我编辑了我的主要帖子。很高兴你解决了这个问题!确保选择您的答案作为解决方案。:-)您还可以执行
{{is_current_path('your_page')?'class=“active”}}
。它与
{{is_current_path('your_page')?'class=“active':''}}
相同。