如何在Sonata / Symfony 3.3中设置内容配置?

时间:2018-03-16 15:07:23

标签: php symfony http sonata

我有一个在Symfony 3.3上运行的Sonata应用程序。目前,它包括一个块服务,它通过以下代码将PDF文件从服务传递到模板:

public function execute(BlockContextInterface $blockContext, Response $response = null)
{
    $block = $blockContext->getBlock();
    $this->load($block);
    $settings = $block->getSettings();
    $media = $block->getSetting('media');

    $blockContext->setSetting('template', 'AppBundle:Block:block_pdf.html.twig');
    return $this->renderResponse($blockContext->getTemplate(), array(
        'block' => $block,
        'settings' => $settings,
        'media' => $media,
    ), $response);
}

...我的Twig代码如下所示:

<figure class="col-md-12">
    <a href="{% path media, 'reference' %}">View as PDF</a>
</figure>

这样可行,但我发现当我在Twig模板中链接到媒体时,PDF会在浏览器中打开。

我想设置文件的配置,以便下载而不是在浏览器中打开。我该怎么做?

到目前为止我尝试过:在Application \ Sonata \ MediaBundle \ Entity \ Meida及其父类中进行挖掘似乎没有产生任何执行此操作的方法。也许我在找错了地方?

1 个答案:

答案 0 :(得分:0)

TIL有一种简单的HTML方法可以做到这一点。

<a href="{% path media, 'reference' %}" target="_blank" download>View as PDF</a>

https://caniuse.com/#feat=download