为什么symfony 3.4中的php模板呈现会打印http头?

为什么symfony 3.4中的php模板呈现会打印http头?,php,symfony,symfony-3.4,Php,Symfony,Symfony 3.4,我正试图从一个杂乱的PHP模板结构(包含许多重复的代码)中转移出来,以帮助我们在extends中拥有类似的twig理念 我们遇到的问题是,一些模板正在呈现HTTP头: Form/Form.html.php的代码是: <?php /** * @var \Symfony\Bundle\FrameworkBundle\Templating\TimedPhpEngine $view * @var \Symfony\Bundle\FrameworkBundle\Templating\He

我正试图从一个杂乱的PHP模板结构(包含许多重复的代码)中转移出来,以帮助我们在extends中拥有类似的twig理念

我们遇到的问题是,一些模板正在呈现HTTP头:

Form/Form.html.php的代码是:

<?php
/**
 * @var \Symfony\Bundle\FrameworkBundle\Templating\TimedPhpEngine    $view
 * @var \Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper $formHelper
 * @var \Symfony\Component\Templating\Helper\SlotsHelper             $slotsHelper
 * @var \Symfony\Component\Form\FormView                             $form
 */
$formHelper = $view['form'];
$slotsHelper = $view['slots'];

?>
<div class="form-wrapper">
    <?php $slotsHelper->output('form-start', $formHelper->start($form)) ?>
    <?php $slotsHelper->output('form-widget', $formHelper->widget($form)) ?>
    <?php $slotsHelper->output('form-end', $formHelper->end($form)) ?>
</div>
如果我用返回的字符串更改这个句子,Symfony只打印这个返回的字符串,而不打印标题

表单呈现正确,但由于我无法理解的原因,Symfony正在打印HTTP头


谢谢

好吧,在询问之后,我仍然在研究它,我终于找到了原因,也多亏了这一点

我已经执行了render,但是render会将呈现的模板作为响应返回,因此会返回HTTP头。renderView只返回渲染的模板

所以我不得不改变路线:

$this->render("Form/Order/form.html.php", ['form' => $orderForm->createView()])


现在,它按预期工作。

很高兴您找到了解决方案。你能写下什么地方出了问题以及你是如何解决的吗。链接到外部资源被认为不足以确定答案。谢谢
$this->render("Form/Order/form.html.php", ['form' => $orderForm->createView()])
$this->render("Form/Order/form.html.php", ['form' => $orderForm->createView()])
$this->renderView("Form/Order/form.html.php", ['form' => $orderForm->createView()])