2013-03-26 2 views
14

Ich möchte die URL zu einem der Assets in meinem Bundle in der Steuerung, nicht in der Vorlage enthalten.Symfony2 Assetic erhalten Asset-URLs aus dem Controller, nicht Vorlage

Genauer gesagt, aber nicht sehr wichtig: Ich mache ein HighChart-Diagramm mit obHighChartsBundle, und ich muss einige spezielle Symbole in einigen Punkten des Diagramms, das ich produziere, grafisch darstellen. Daher benötige ich die URL zu dem Icon, das sich im Asset-Ordner meines Bundles befindet.

Ist es möglich, eine Art Asset Manager vom Controller aus aufzurufen und die richtige URL zu diesem Asset zu erhalten?

Antwort

39

Sie können auch anrufen ($ package ist optional):

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

Für ältere Versionen Service Symfony templating.helper.assets genannt wird, so dass Sie verwenden:

$this->container->get('templating.helper.assets')->getUrl($path, $packageName); 

Es ist die gleiche Art und Weise wie Zweig Funktion (in der Tat wird dies in der Zweigfunktion genannt).

+0

vielen Dank! Rettet mich davor, es hart zu codieren. – Piddien

+0

brauche ich eine use-Anweisung, um den Zweig irgendwie einzubinden? – Piddien

+0

Ich bin mir nicht sicher, was Sie fragen. Sie brauchen keinen Zweig, damit dies funktioniert. –