2012-02-07 10 views

Respuesta

15

Tome un vistazo a: Symfony/Bundle/TwigBundle/Extensión/AssetExtension

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

Básicamente, se inyectan templating.helper.assets en su servicio, entonces llamar getUrl.

+1

Gracias s por la respuesta. Funcionó. Solo quiero agregar que necesito poner 'strict =" false "' en el argumento de servicio para ** templating.helper.assets ** para que se inyecte correctamente. Funciona bien ahora. –

+14

¿Cómo obtengo una URL absoluta? – Rudie

6

Aquí está una manera simple y limpia para Symfony 2.8:

services.yml:

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

En el servicio:

protected $assets; 

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

entonces usted puede utilizar en cualquier función de la servicio como este:

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

En Symfony 3.X el servicio 'templating.helper.assets' ha sido eliminado y reemplazado por' assets.packages'. – DFayet

Cuestiones relacionadas