gpt4 book ai didi

php - Symfony 2 Twig 表单功能不可用

转载 作者:行者123 更新时间:2023-12-02 07:32:43 24 4
gpt4 key购买 nike

我正在自定义类中创建一个新的 Twig Environment 对象,该类是从现有的 Twig 文件呈现的。我正在尝试在我的 twig 文件中呈现一个表单,该表单是从我的自定义类呈现的,但是在这个新的 Twig_Environment 对象中表单函数不可用,我尝试将 symfony 自己的 twig 对象的现有表单扩展添加到我的新 twig 对象,那也不起作用。

$path = 'some/directory'; // just simplifying here

$loader = new \Twig_Loader_Filesystem( $path );
$twig = new \Twig_Environment($loader, array(
'cache' => __DIR__.'/../../../../../../app/cache/',
));
$tmpl = $twig->loadTemplate('EmailUs.html.twig');
$twig->addExtension( new \Symfony\Bridge\Twig\Extension\FormExtension( $this->pageObj->getContainer()->get('twig.form.renderer') ) );
$response = new Response();
$response->setContent($tmpl);
return $response;

我得到的错误是

"The function "form_start" does not exist in EmailUs.html.twig at line 8"

我正在使用 symfony 自己的 twig 对象来呈现响应,但这给了我同样的错误。你能帮忙吗?我正在使用 Symfony 2.3.4

如果我渲染一个普通的 Controller ,表单函数是可用的,如果我创建一个自定义的 Twig 对象,它们就不能正常工作。

最佳答案

我是这样解决的:

$loader = $pageFunctions->getContainer()->get('twig.loader');
$loader->addPath( $path );
$twig = new \Twig_Environment($loader, array(
'cache' => __DIR__.'/../../../../../../app/cache/myTwig',
));

foreach( $this->twig->getExtensions() as $ext ) {
$twig->addExtension( $ext );
}

$tmpl = $twig->loadTemplate('EmailUs.html.twig');

$rendered = $tmpl->display( array('control' => $this,
'functions' => $pageFunctions,
'params' => $params,
'email_form'=>$form->createView() ) );

return $rendered;

关于php - Symfony 2 Twig 表单功能不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com