簡體   English   中英

有沒有辦法在 Symfony 中使用命令來渲染模板?

[英]Is there a way to render a template using command in Symfony?

我有一個渲染問題。 在此處輸入圖片說明

這個問題發生一次,因為我想將前端的內容放入數據庫中。 我顯然是在一個名為 AppTriggerBuildCommand 的類中生成命令,但如圖像中所述,一旦代碼達到此問題就會出現問題,例如:

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

在 page.html.twig 里面。

  [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

我已經嘗試了另一個中建議的兩種解決方案。 一旦我嘗試重建 bootstrap.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

有人能幫我解決這個問題嗎?

您應該在命令中創建一個請求並將其添加到請求堆棧中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM