2012-04-11 4 views
0

Symfony 1.4 및 Doctrine 1.2 프로젝트가 실행 중이고 DB 호출 중 하나에서 출력 이스케이프에 문제가 있습니다.Symfony에서 출력 이스케이프 처리

Doctrine 쿼리에서는 PHP 개체를 검색하지 않지만 PHP에서는 배열을 검색합니다. 제가이 일을하는 이유는 또 다른 주제입니다. 단지 PHP 객체를 얻는 것이 해결책이되지 못한다고 가정 해 봅시다. 기본적으로 쿼리는 두 가지 교리 모델 간의 내부 조인입니다. 모델 내부 1 모델 2 조인 및 산출 결과는 다음과 같이 액세스 할 수 있습니다

foreach($results as $result) 
{ 
echo $result['field1']; // accessing results for model 1 
echo $result['model2']['field1']; // accessing results for model 2 (this inner joins with the model) 
} 

지금 위를 들면, 더 구체적으로 모델 2에 대해, 필드 1은 출력이 탈출 자연스럽게되는 HTML 태그로 구성되어 있습니다. HTML 마크 업을 그대로 렌더링해야합니다! 어떤 것이 문제가되는 곳입니까?

Doctrine 객체의 규칙 인 경우 간단한 $ modelObject-> getRawValue() -> getField(); HTML 마크 업을 이스케이프 처리하지 않고 렌더링합니다. PHP 마크 업에서 HTML 마크 업을 렌더링하는 방법을 모르겠습니다.

감사합니다.

+1

루프 안에 print_r ($ result)이 있다면, 그것이 escaper 객체에 싸여 있다는 것을 알 수 있습니다. 그렇다면'getRawValue()'도 그 요소에 사용할 수 있어야한다. – halfer

+0

Halfer, 대부분의 솔루션은 의견입니다. 어떻게 답변으로 받아들입니까? – user1020069

+0

당신에게 맞는 코멘트가 있다면, 포스터에게 그들의 코멘트를 답변에 복사 해달라고 부탁하십시오! 나는 항상 그렇게한다. 그게 도움이된다면, 그때 거기에 있었고, 나이 들어서 머리를 긁었습니다.':-)'. – halfer

답변

2

(내 이전 의견에서 복사 됨). 루프 내부에 print_r($result)이 있다면, 그것이 escaper 객체에 싸여 있음을 알 수 있습니다. 그렇다면 getRawValue()을 해당 요소에도 사용할 수 있어야합니다.

탈옥수 객체가 Iterator 인터페이스 (이 배열처럼 작동하는 나타나도록) 또한 ArrayAccess (그래서 당신이 위에 foreach 할 수 있습니다) 구현하므로이 작동합니다.

관련 문제