Twig 在Silex micro framework(symfony forms)中使用{{form_widget(form)}}创建表单时出现细枝语法错误
我在玩Silex微框架。首先,我使用composer为Twig安装了Twig扩展:Twig 在Silex micro framework(symfony forms)中使用{{form_widget(form)}}创建表单时出现细枝语法错误,twig,symfony-forms,silex,twig-extension,Twig,Symfony Forms,Silex,Twig Extension,我在玩Silex微框架。首先,我使用composer为Twig安装了Twig扩展: composer require twig/extensions 我将此配置添加到我的前端控制器(index.php): 一切都可以按预期工作,但在使用小部件创建表单时 {{ form_widget(form) }} 我从Twig Debugger获得此错误: ExpressionParser.php第573行中的1/1细枝错误语法:未知 第35行“post.twig”中的“form_widget”函数 如果
composer require twig/extensions
我将此配置添加到我的前端控制器(index.php):
一切都可以按预期工作,但在使用小部件创建表单时
{{ form_widget(form) }}
我从Twig Debugger获得此错误:
ExpressionParser.php第573行中的1/1细枝错误语法:未知
第35行“post.twig”中的“form_widget”函数
如果我注释掉这行代码:
// $app['twig']->addExtension(new Twig_Extension_Debug());
在我的前控制器中,一切正常,窗体渲染没有问题
这是twig调试扩展的问题吗?也许是不相容的
我不需要使用widget_表单在twig中呈现我的表单。我使用它只是为了快速测试的目的,在我正确地用twig编写渲染之前——但我仍然不明白twig为什么会为此抛出错误
这是我的composer.json
{
"require": {
"silex/silex": "~1.3",
"symfony/browser-kit": "~2.3",
"symfony/console": "~2.3",
"symfony/config": "~2.3",
"symfony/css-selector": "~2.3",
"symfony/dom-crawler": "~2.3",
"symfony/filesystem": "~2.3",
"symfony/finder": "~2.3",
"symfony/form": "~2.3",
"symfony/locale": "~2.3",
"symfony/process": "~2.3",
"symfony/security": "~2.3",
"symfony/serializer": "~2.3",
"symfony/translation": "~2.3",
"symfony/validator": "~2.3",
"symfony/monolog-bridge": "~2.3",
"symfony/twig-bridge": "~2.3",
"doctrine/dbal": ">=2.2.0,<2.4.0-dev",
"swiftmailer/swiftmailer": "5.*",
"twig/extensions": "^1.3"
}
}
{
“要求”:{
“silex/silex”:“~1.3”,
“symfony/浏览器套件”:“~2.3”,
“symfony/console”:“~2.3”,
“symfony/config”:“~2.3”,
“symfony/css选择器”:“~2.3”,
“symfony/dom爬虫”:“~2.3”,
“symfony/filesystem”:“~2.3”,
“symfony/finder”:“~2.3”,
“symfony/form”:“~2.3”,
“symfony/locale”:“~2.3”,
“符号/过程”:“~2.3”,
“symfony/security”:“~2.3”,
“symfony/序列化程序”:“~2.3”,
“符号/翻译”:“~2.3”,
“symfony/validator”:“~2.3”,
“symfony/独白桥”:“~2.3”,
“symfony/twig bridge”:“~2.3”,
“条令/dbal”:“>=2.2.0,确保symfony/twig bridge
集成到您的项目中。我想这个例子为我解决了这个问题(在Pimple中包含扩展的新方法):
这只是一个猜测,但是你能确保你已经安装了树枝桥吗?我已经安装了“symfony/twig bridge”:“~2.3”Thx for sugestion,但是我已经安装了“symfony/twig bridge”:“~2.3”
{
"require": {
"silex/silex": "~1.3",
"symfony/browser-kit": "~2.3",
"symfony/console": "~2.3",
"symfony/config": "~2.3",
"symfony/css-selector": "~2.3",
"symfony/dom-crawler": "~2.3",
"symfony/filesystem": "~2.3",
"symfony/finder": "~2.3",
"symfony/form": "~2.3",
"symfony/locale": "~2.3",
"symfony/process": "~2.3",
"symfony/security": "~2.3",
"symfony/serializer": "~2.3",
"symfony/translation": "~2.3",
"symfony/validator": "~2.3",
"symfony/monolog-bridge": "~2.3",
"symfony/twig-bridge": "~2.3",
"doctrine/dbal": ">=2.2.0,<2.4.0-dev",
"swiftmailer/swiftmailer": "5.*",
"twig/extensions": "^1.3"
}
}
// CONFIG
// turn on debug in silex
$app['debug'] = true;
// register twig and enable debug
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/../templets',
'twig.options' => array('debug' => true),
)
);
// add twig debug extension in Pimpel (the new way)
$app['twig'] = $app->share($app->extend('twig', function($twig, $app) {
$twig->addExtension(new \Twig_Extension_Debug());
return $twig;
}));