我试图在树枝上使用自定义的PHP功能,我做错了什么?

时间:2017-11-16 14:41:46

标签: php drupal twig drupal-8

我试图在twig中使用我的自定义php函数。 当我在page.html.twig中输入{{current_url}}时,没有任何反应。 我也试过{{kint(current_url)}},输出NULL 这是我的代码

<?php
namespace Drupal\nextprev\plugin\block\customtwigoutput;


use Drupal\Core\Template\TwigExtension;
use  Drupal\nextprev\nextprevmodule\path;
use \Symfony\Component\HttpFoundation\Request;


class AppExtension extends \Twig_Extension {

public function url() {
   $current_path = \Drupal::service('path.current')->getPath();
   return $current_path;
}


  public function getFilters() {
     return array(
       'current_url' => new \Twig_Function_Function(array('Drupal\nextprev\plugin\block\customtwigoutput\AppExtension', 'url')),
     );
   }
}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

你有没有添加services.yml?这是一个样本;

main.cpp

答案 1 :(得分:0)

也许您应该尝试使用树枝功能:

在您的扩展程序中

public function getFunctions()
{
    return array(
        new \Twig_SimpleFunction('current_url', array($this, 'url')),
    );
}

在您的视图中

 {{ current_url() }}