У меня есть проблема в 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 }
Других решений пока нет …