我运行了一个Symfony 1.4和Doctrine 1.2项目,并且在我的一个数据库调用中出现输出转义问题。
问题是,我没有在我的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)
}
现在对于上面的内容,更具体地说对于model2,field1由HTML标记组成,它自然是输出转义的。我需要HTML标记按原样呈现!这就是问题所在,
如果这是一个规则Doctrine对象,一个简单的$ modelObject-> getRawValue() - > getField();将呈现HTML标记而不转义它。我不确定如何在PHP数组中呈现HTML标记?
由于
答案 0 :(得分:2)
(复制自我之前的评论)。我想知道,如果你在循环中print_r($result)
,你可能会发现它被包裹在一个自旋对象中。如果是这样,您应该也能在其元素上使用getRawValue()
?
这是有效的,因为escaper对象实现了Iterator
接口(因此你可以对foreach
执行)以及ArrayAccess
(因此它看起来像数组一样工作)。< / p>