Экранирование вывода в Symfony

У меня запущен проект Symfony 1.4 и Doctrine 1.2, и у меня возникла проблема с экранированием вывода в одном из моих вызовов БД.

Дело в том, что я получаю не объект PHP в своем запросе Doctrine, а массив в 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)
}

Теперь о вышеизложенном, а точнее для model2, field1 состоит из HTML-разметки, которая естественным образом экранируется при выводе. Мне нужно, чтобы HTML-разметка отображалась как есть! Вот где проблема,

если это был нормативный объект Doctrine, простой $modelObject->getRawValue()->getField(); будет отображать HTML-разметку, не экранируя ее. Я не уверен, как HTML-разметка может отображаться в массиве PHP?

Спасибо


person user1020069    schedule 11.04.2012    source источник
comment
Интересно, если вы print_r($result) внутри своего цикла, вы можете обнаружить, что он обернут в escape-объект. Если это так, вы также можете использовать getRawValue() для его элементов?   -  person halfer    schedule 12.04.2012
comment
Халфер, большинство ваших решений являются комментариями, как я могу принять их как ответы?   -  person user1020069    schedule 12.04.2012
comment
Если вы видите комментарий, который вам подходит, просто попросите автора скопировать его комментарий в ответ и примите его! Я делаю это все время. Если это помогло, то отлично - был там, почесал голову целую вечность :-).   -  person halfer    schedule 12.04.2012
comment
Halfer опубликовать комментарий в качестве ответа, вы получили его!   -  person user1020069    schedule 12.04.2012


Ответы (1)


(скопировано из моего предыдущего комментария). Интересно, если вы print_r($result) внутри своего цикла, вы можете обнаружить, что он обернут в escape-объект. Если это так, вы также можете использовать getRawValue() для его элементов?

Это работает, потому что объект escaper реализует интерфейс Iterator (так что вы можете сделать foreach поверх него), а также ArrayAccess (поэтому он работает как массив).

person halfer    schedule 11.04.2012