代码之家  ›  专栏  ›  技术社区  ›  FortuneSoldier

有没有办法在Symfony中使用命令渲染模板?

  •  1
  • FortuneSoldier  · 技术社区  · 7 年前

    我有渲染问题。 enter image description here

    当我想将我从前端获得的内容放入数据库时,这个问题会发生一次。很明显,我是在一个名为AppTriggerBuildCommand的类中生成命令的,但正如图中所述,一旦代码达到这个级别,就会出现问题,例如:

    {{ render(controller('AppBundle:Menu:footerLarge', { 'language': language }  )) }}
    

    在页面内部。html。细枝

      [Twig_Error_Runtime]                                                                                                                 
      An exception has been thrown during the rendering of a template ("Rendering a fragment can only be done when handling a Request.").  
    
    
    Exception trace:
     () at /var/www/html/iclei/src/AppBundle/Resources/views/page.html.twig:23
     Twig_Template->displayWithErrorHandling() at /var/www/html/iclei/vendor/twig/twig/lib/Twig/Template.php:366
     Twig_Template->display() at /var/www/html/iclei/vendor/twig/twig/lib/Twig/Template.php:374
     Twig_Template->render() at /var/www/html/iclei/vendor/twig/twig/lib/Twig/Environment.php:289
     Twig_Environment->render() at /var/www/html/iclei/src/AppBundle/Command/AppTriggerBuildCommand.php:69
     AppBundle\Command\AppTriggerBuildCommand->pageAction() at /var/www/html/iclei/src/AppBundle/Command/AppTriggerBuildCommand.php:38
     AppBundle\Command\AppTriggerBuildCommand->execute() at /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:242
     Symfony\Component\Console\Command\Command->run() at /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:861
     Symfony\Component\Console\Application->doRunCommand() at /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:193
     Symfony\Component\Console\Application->doRun() at /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:83
     Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:117
     Symfony\Component\Console\Application->run() at /var/www/html/iclei/app/console:27
    

    我已经尝试了另一个建议中的两种解决方案。一旦我尝试重建引导程序。php它只是没有改变任何事情。 这是在

    /var/www/html/iclei/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
    

    另一个我们可以在这里找到:

    /var/www/html/iclei/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php
    

    有人能帮我克服这一点吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   goto    7 年前

    您应该在命令中创建一个请求,并将其添加到请求堆栈中

    $r = new Request();
    $r->setLocale('en');
    $container->set('request', $r, 'request');
    $container->get('request_stack')->push($r);