2012-03-13 6 views
1

WYWSWIG 사용 텍스트 영역에서 데이터를 가져 오는 데이터베이스가 있습니다. 기본적으로 많은 텍스트 영역은 다음과 같이 인코딩 된 HTML 태그입니다.Symfony보기에서 에코 할 때 HTML 태그가 자동으로 이스케이프되지 않게합니다.

info data text info data text stored in the table column, I have <p>info data<strong>info data</strong><em>text</em></p> encoded in there. 

Doctrine을 사용하여 db 쿼리를 실행하면이 정보가 내 작업에 유지되고 템플릿에 전달되는 변수에 래핑됩니다. 이 시점에서 렌더링시 태그는 그대로 유지됩니다. 설명하기 위해 텍스트는 원하는 HTML 마크 업 효과로 렌더링되지 않고 그대로 태그로 렌더링됩니다. 이것은 분명히 문자 이스케이프가 발생하고 있음을 의미합니다.

이 문제를 완화하는 방법을 잘 모르겠습니다. 그러나 당분간 충분할 수있는 임시 해결책을 찾았습니다. Doctrine 쿼리를 동작 대신 템플릿에서 실행합니다. 이 경우 이스케이프가 발생하지 않으며 원하는 HTML 마크 업이 렌더링됩니다. 이것으로부터 명백한 함의는 질의 변수가 액션에서 템플릿으로 전달 될 때 일종의 내부 Symfony 문자 이스케이프가 발생한다는 것입니다.

답변

2

symfony는 기본적으로보기에 전달 된 모든 변수를 sfOutputEscaper 인스턴스로 래핑합니다. 이스케이프 처리되지 않은 값을 가져 오려면 $var->getRawValue()을보기에 반향시킵니다.

관련 문제