带有needs_context的Twig函数

时间:2018-02-04 14:47:04

标签: twig slim

我需要在current_page函数中获得needs_context。 它工作正常,但needs_context保持空白。

我的班级助手延伸\ Twig_Extension

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文件中 <a href="" class="{{ activeClass('foo') }}">Foo</a>

我希望用这个函数返回导航栏中当前href的active类。我使用Slim v3和他的扩展名Twig-view。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。 因为我使用Twig for Slim的延伸而没有Twig,所以它有所不同。 Normaly,我们使用needs_context来提取current_page的值。 但是对于Slim PHP的Twig-view,我们可以使用{% if is_current_path('your_page') %}class="active"{% endif %}

真诚地感谢@martias和@DarkBee的帮助。