1

次の小枝拡張クラスでパラメーター値を取得する必要があります

namespace xxxx\WebBundle\Twig;
use Symfony\Component\HttpKernel\KernelInterface;

class MyExtension extends \Twig_Extension

{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('affliate', array($this, 'urlFilter')),
        );
    }

    public function urlFilter($url,$aff)
    {
        $separator = "?";
        if (strpos($url,"?")!=false) {
            $separator = "&";
        }
        $parse = parse_url($url);
        //echo $parse['host'];

        $app_url = $url.$separator.'tag='.$aff;

        return $app_url;
    }

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

コントローラーでは、次のように使用できます $this->container->getParameter('contact_email'); しかし、小枝拡張クラスの値が必要です。

4

1 に答える 1

0

次のように、パラメーターを引数として twig 拡張機能のコンストラクターに挿入します。

config.yml

services:
    twig.extension.your_extension:
        class: Vendor\YourBundle\Twig\Extension\YourExtension
        arguments: [ %parameter1%, %parameter2% ]         
        tags:
            - { name: twig.extension }

あなたのExtension.php

protected $parameter1;
protected $parameter1;

public function __construct($parameter1, $parameter2)
{
    $this->parameter1 = $parameter1;
    $this->parameter2 = $parameter2;
}

// ....

public function urlFilter($url,$aff)
{
     // access the parameters using $this->parameter1
}
于 2013-06-26T15:23:16.547 に答える