小编red*_*rdo的帖子

几乎完成 - 只需要完成Twig扩展即可呈现ESI - Symfony2

我想创建一个Twig扩展并使用它:

{{ new_func(route-name) }}
Run Code Online (Sandbox Code Playgroud)

做同样的事情:

{{ render_esi(url(route-name)) }}
Run Code Online (Sandbox Code Playgroud)

......但有一些调整

它已接近完成,但这条线需要更改,但我无法看到如何从此代码(在Twig之外)调用ESI:

return $environment->render($route);   /// needs to receive route and render an ESI
Run Code Online (Sandbox Code Playgroud)

-

namespace Acme\Bundle\MyBundle\Twig;

class NewTwigFunction extends \Twig_Extension
{

    private $request;

    public function __construct($container)
    {
        $this->request = $container->get('request');
    }

    public function getFunctions() {

        return array(
            'new_func' => new \Twig_Function_Method($this, 'newFunction', array('needs_environment' => true) )
        );

    }

    public function newFunction(\Twig_Environment $environment, $route) {

        $r = $this->request;

        return $environment->render($route);

    }

    public function getName() {

        return "new_func";

    }

 }
Run Code Online (Sandbox Code Playgroud)

symfony twig

0
推荐指数
1
解决办法
1406
查看次数

标签 统计

symfony ×1

twig ×1