Вызовите контроллер или просмотр (файл ветки) из самостоятельно определенного расширения ветки в smyfony2

0

У меня проблема с symfony2 на данный момент, и я не знаю, как я могу ее решить. Я хочу, чтобы в явном явном новом расширении twig я хотел бы вызвать контроллер или или представление (файл twig).

Как правильно это реализовать? Вы можете мне помочь? Я читал много интернет-страниц symfony2, но я не нашел для меня хорошего подхода к программированию.

Для лучшего понимания, почему я хочу сделать что-то вроде этого, вот пример: что такое моя идея: я хочу указать какой-то HTML-код в отдельное представление. Это новое представление встроено в другое представление, вызывая расширение ветки.

Итак, как я могу это понять?

Спасибо за помощь.

Теги:
twig
controller

1 ответ

0

Когда вы используете Symfony2, вы можете templating службу templating к расширению Twig, а затем вызвать метод ->render.

The extension

<?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 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню