2016-03-22 64 views
2

我在Symfony 2.7.10中使用資產,我想在控制器中生成圖片url。如何在Symfony控制器中獲取資產img url

在我加入以下設置symfony的config.yml文件:

framework: 
    assets: 
      version: '311nk2' 
      version_format: '%%s?v=%%s' 
      base_path: /bundles/myBundleName 

在枝杈一個URL的生成工作正常,所以用下面的樹枝代碼:

{{ asset('images/logo.png') }} 

它生成:

/bundles/myBundleName/images/logo.png?v=311nk2 

現在我想要在控制器中生成相同的url,這怎麼可能?

回答

4

使用稱爲templating.helper.assets的助手服務可以做到這一點。 嘗試是這樣的:

var_dump($this->get('templating.helper.assets')->getUrl('bundles/myBundleName/images/logo.png')); 
5

但symfony的3它不工作了。

在symfony中3使用

$this->container->get('assets.packages')->getUrl($path); 

private function getAssets($path) 
{ 
    return $this->container->get('assets.packages')->getUrl($path); 
} 

$this->getAssets(...your path...); 
2

如果您使用symfony 3.4+自動佈線,您可以DI包實例並使用它。 例如說一個控制器動作功能:

public function myAction(Packages $assetPackage) 
{ 
    $url = $assetPackage->getUrl('css/main-ie.css'); 
} 
+0

事實上,和使用包這是下一個: 使用的Symfony \分量\資產\包; –

相關問題