2014-10-30 2 views
1

이미지의 src URL을 검색하고 싶습니다.컨트롤러에서 symfony2 이미지 경로

{% image "@AcmeMyBundle/Resources/public/image/myimage.jpg" %} 
    <img src={{ asset_url }} 
{% endimage %} 

컨트롤러 내에 asset_url은 어떻게 얻을 수 있습니까?

$this->container 
    ->get('templating.helper.assets') 
    ->getUrl('@AcmeMyBundle/Resources/public/image/myimage.jpg'); 

을하지만이 문자열 /@AcmeMyBundle/Resources/public/image/myimage.jpg 아닌 URL을 반환 http://example.com/images/c1ca79c_myimage.jpg

또는 images/c1ca79c__myimage.jpg 나는 시도했다.

$this->container 
->get('templating.helper.assets') 
->getUrl('bundles/acmemy/public/image/myimage.jpg'); 
+0

파일 시스템 내에서'src' URL 또는 절대 경로가 필요합니까? – dmnptr

+0

SRC 외부 링크 용 파일 시스템이 아닌 URL입니다. – Tek

+0

컨트롤러가 필요로하는 유스 케이스는 무엇인지 궁금한가요? – Chausser

답변

1

다른 :

$twig = clone $this->get('twig'); 
$twig->setLoader(new \Twig_Loader_String()); 
$rendered = $twig->render(
    '{% image "@AcmeMyBundle/Resources/public/image/myimage.jpg" %} 
    {{ asset_url }} 
    {% endimage %}' 
); 
+0

이것은 여전히 ​​@ 주석을 생성합니다. URL을받는 방법을 조언 할 수 있습니까? – cj5

1

당신은 나뭇 가지 자산 도우미 사용할 수 있습니다

$twig = clone $this->get('twig'); 
$twig->setLoader(new \Twig_Loader_String()); 
$rendered = $twig->render(
    '{{ app.request.getSchemeAndHttpHost ~ asset("bundles/acmemy/image/myimage.jpg") }}' 
); 
//Outputs - http://example.com/acmemybundle/images/myimage.jpg 

을 또는 당신도 할 수 있어야 대답은 가까웠다. 제가 정말 원했던 것은이었다

$this 
    ->get('templating.name_parser') 
    ->parse('@AcmeBundle/Resources/dart/AcmeMain/web/main.dart') 
    ->getPath() 

나는 내가 @ 주석을 사용하고 싶었 내 질문에 질문처럼. 그것은 심포니 3 사용

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

예에서 더 이상

심포니 3에서 작동하지 않습니다

+0

너무 예쁘지는 않지만 작동합니다 ... – mika

4

당신이 시도 유무 :

1

.

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

$this->getAssets(...your path...); 
관련 문제