Twig 在Silex micro framework(symfony forms)中使用{{form_widget(form)}}创建表单时出现细枝语法错误

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”函数 如果

我在玩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”函数

如果我注释掉这行代码:

// $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;
        }));