繁体   English   中英

从smyfony2中自定义的树枝扩展名调用控制器或视图(树枝文件)

[英]Call controller or view (twig file) from self defined twig extension in smyfony2

我目前在symfony2中遇到问题,我不知道该如何解决。 在自定义的新树枝扩展中,我想调用控制器或视图(树枝文件)。

如何实现这一目标的正确方法? 你能帮助我吗? 我已经阅读了许多symfony2网页,但没有找到适合我的编程方法。

为了更好地理解为什么我要执行这样的操作,这是我的主意:我想将一些html代码来源到一个单独的视图中。 通过调用树枝扩展,此新视图将嵌入到另一个视图中。

那么我怎么能意识到这一点呢?

感谢您的帮助。

在使用Symfony2时,可以将templating服务注入到Twig扩展中,然后调用->render方法。

扩展名

<?php

namespace YourPackage\YourBundle\Twig\Extension;

use Symfony\Component\Templating\EngineInterface;

class Test_Extension extends \Twig_Extension
{

   protected $templating;

   public function __construct(EngineInterface $templating)
   {
      $this->templating = $templating;
   }

   public function getFunctions()
   {
      return array(
              new \Twig_SimpleFunction('my_test', array($this->myTest()), array('is_safe' => array('html')))
      );
   }

   public function myTest()
   {
      // do some stuffs
      $data = $this->templating->render("SomeBundle:Directory:file.html.twig");
      // ...
      return $data;
   }

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

}

services.yml

# src/YourPackage/YourBUndle/Resources/config/services.yml
services:
    test.test_extension:
        class: YourPackage\YourBundle\Twig\Extension\TestExtension
        arguments: ['@templating']
        tags:
            - { name: twig.extension }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM