2013-03-26 5 views
14

Chcę dołączyć adres URL do jednego z zasobów w moim pakiecie w kontrolerze, a nie w szablonie.Symfony2 Assetic pobiera adresy URL zasobów z poziomu kontrolera wewnętrznego, a nie szablonu.

Dokładniej, ale nie bardzo ważne: Sporządzam wykres HighChart przy użyciu obHighChartsBundle i muszę wykreślić specjalne ikony w niektórych punktach wykresu, który tworzę. Dlatego potrzebuję adresu URL do ikony, która znajduje się w folderze zasobów mojego pakietu.

Czy można wywołać jakiegoś menedżera aktywów ze sterownika i uzyskać poprawny adres URL tego zasobu?

Odpowiedz

39

Można zadzwonić ($ packageName jest opcjonalny):

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

Dla starszej Symfony usługi wersje nazywa templating.helper.assets, więc użyć:

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

Jest używany tak samo jak funkcja gałązka (w rzeczywistości nazywa się to funkcją gałązkową).

+0

dziękuję bardzo! Uratuje mnie przed trudnym kodowaniem. – Piddien

+0

Czy potrzebuję oświadczenia o użytkowaniu do włączenia twig jakoś? – Piddien

+0

Nie jestem pewien, o co pytasz. Nie potrzebujesz gałązki, aby to zadziałało. –

Powiązane problemy