2014-05-16 2 views
2

블로그 텍스트 내부 또는 데이터 고정 장치를 사용하는 동안 아래의 다음 줄을 사용할 때 업로드 된 이미지를 웹/이미지에 표시하는 데 문제가 있습니다.Symfony2 - Twig 파일에서 불러올 때만 업로드 된 이미지가 표시됩니다.

나는 코드를 수동으로 호출하여 Twig 파일 내부의 이미지를 표시했지만, 이것을 픽스처에 사용하거나 블로그 텍스트에 입력하여 이미지의 크기/정렬을 사용자 정의합니다 각 게시물.

누군가 이미지가 표시되지 않도록 나를 보여줄 수 있습니까?

건배!

이것은 동안 고정구 또는 블로그 텍스트 내부에 화상을 표시하는 것을 거부 :는 (블로그 텍스트 내부의 적절한 크기 및 화상의 배치의 개략을 도시하지만 이미지 자체)

<img class="alignleft" src="{{ asset(['images/', news.image]|join) }}" alt="" width="290" height="275" /> 

D에 autoescape 거짓을 사용

<img class="alignleft" src="http://www.example.com/example.jpg" alt="" width="290" height="275" /> 

: 블로그 텍스트를 입력 할 때 이미지에 대한 웹 링크를 사용하는 경우 고정에서 잘 작동하거나 블로그 텍스트를 isplay : 당신은 (하위) 템플릿으로 문자열 (변수)을 렌더링하기 위해 노력하고

{% autoescape false %} 
    <p>{{ news.blog }}</p> 
{% endautoescape %} 
+0

무엇에 대해'{ {asset ('images/yourimage.jpg')}}', 변수 및 조인이 필요하지 않습니까? (Btw, 이스케이프/인코딩되지 않은 변수 하나만 원하면'raw'를 사용할 수 있습니다 .' autoescape' 블록이 필요 없습니다.) – Rudie

+0

아니요, 같은 결과가 작동하지 않습니다. 사진은 제대로 찍히고 크기는 있지만 이미지가 없습니다. 블로그에서 다른 HTML 코드를 표시하기 위해 autoescape를 사용하고 있습니다. – marty

+0

방금 ​​질문에 코드를 수정했습니다. 누락 된'}}'그냥 복사/붙여 넣기 오타가 있었습니까? – nifr

답변

1

.

나뭇 가지가 {{ asset() }} 기능을 처리하지 않는 이유입니다.

자동 이스케이프는 문자열 안에 나뭇 가지 기능을 처리 할 수 ​​없기 때문에 찾고자하는 것이 아닙니다.

솔루션 : template_from_string 기능

1) 당신의 config.yml

services: 
    # ... 
    twig.extension.stringloader: 
     class: Twig_Extension_StringLoader 
     tags: 
      - { name: twig.extension } 

이제 명확 캐시가 app/console cache:clear을 사용하여 나뭇 가지와 함께 제공되는 Twig_Extension_StringLoader 확장을 활성화합니다.

2) 당신이 당신의 템플릿라는 변수에 저장되어있는 경우 다음과 같이 news.blog 지금 기능을 사용할 수 있습니다

{{ include(template_from_string(news.blog)) }} 
문서에서

자세한 내용은 : template_from_string

+0

감사합니다. 변수에 저장된 템플릿을 설명 하시겠습니까? – marty

+0

질문의 코드는 조명기에 의해로드 된 블로그 (항목) 텍스트 안에 있다고하셨습니다. 그래서 텍스트/코드 자체가 컨트롤러에서 나뭇 가지로 전달하는 변수에 저장되어 있다고 생각하십니까? 아, 나는 당신의 경우에'news.blog'라고 본다. 답변을 업데이트했습니다. – nifr

+0

지금 작동합니까? 그냥 join 대신에 간단한 문자열 연결을 사용할 수 있습니다 :'asset ('images /'~ news.image)' – nifr

관련 문제