2012-02-07 25 views

回答

15

看看: 的Symfony /包/ TwigBundle /分機/ AssetExtension

public function getAssetUrl($path, $packageName = null) 
{ 
    return $this->container->get('templating.helper.assets')->getUrl($path, $packageName); 
} 

基本上,注入templating.helper.assets爲您服務,然後調用的getURL。

+1

謝謝s的答案。有效。我只想補充一點,我需要在templating.helper.assets **的service參數中加入strict =「false」,以便正確注入。現在它工作正常。 – 2012-02-10 13:08:03

+14

如何獲得絕對URL? – Rudie 2012-02-27 15:52:54

6

下面是Symfony的2.8一個簡單而乾淨的方式:

services.yml:

arguments: 
    assets: "@templating.helper.assets" 

在服務:

protected $assets; 

public function __construct($assets) 
{ 
    $this->assets = $assets; 
} 

然後你就可以在任何的功能使用像這樣的服務:

$this->assets->getUrl('myurl'); 
+4

在Symfony 3.X中,服務'templating.helper.assets'已被刪除並被'assets.packages'取代。 – DFayet 2017-03-31 20:23:37