我正在使用Symfony 2,我想從服務類生成絕對網址,而不是模板。我想要同樣的東西,如何從服務內生成資產URL?
{{ asset('/path/to/my/asset') }}
將返回模板。
這可能嗎?
我正在使用Symfony 2,我想從服務類生成絕對網址,而不是模板。我想要同樣的東西,如何從服務內生成資產URL?
{{ asset('/path/to/my/asset') }}
將返回模板。
這可能嗎?
看看: 的Symfony /包/ TwigBundle /分機/ AssetExtension
public function getAssetUrl($path, $packageName = null)
{
return $this->container->get('templating.helper.assets')->getUrl($path, $packageName);
}
基本上,注入templating.helper.assets爲您服務,然後調用的getURL。
下面是Symfony的2.8一個簡單而乾淨的方式:
services.yml:
arguments:
assets: "@templating.helper.assets"
在服務:
protected $assets;
public function __construct($assets)
{
$this->assets = $assets;
}
然後你就可以在任何的功能使用像這樣的服務:
$this->assets->getUrl('myurl');
在Symfony 3.X中,服務'templating.helper.assets'已被刪除並被'assets.packages'取代。 – DFayet 2017-03-31 20:23:37
謝謝s的答案。有效。我只想補充一點,我需要在templating.helper.assets **的service參數中加入strict =「false」,以便正確注入。現在它工作正常。 – 2012-02-10 13:08:03
如何獲得絕對URL? – Rudie 2012-02-27 15:52:54