Security Symfony 1.4是否有办法转义视图中的所有对象(例如窗体对象)?

Security Symfony 1.4是否有办法转义视图中的所有对象(例如窗体对象)?,security,escaping,symfony-1.4,Security,Escaping,Symfony 1.4,示范行动 $object = new myObject(); $object->setName("Darth <b>Vader</b>"); $this->form = new myObjectForm($object) 这将输出未转义的名称 因此,我可以将操作更改为: $this->object = new myObject(); $this->object->setName("Darth <b>Vader</b>

示范行动

$object = new myObject();
$object->setName("Darth <b>Vader</b>");
$this->form = new myObjectForm($object)
这将输出未转义的名称

因此,我可以将操作更改为:

$this->object = new myObject();
$this->object->setName("Darth <b>Vader</b>");
$this->form = new myObjectForm($this->object)
这样会输出逃逸的名字,妙不可言


但是,是否也有一种自动方式来获取$form->getObject->getName转义?

当您直接从表单获取对象时,它不是自动转义的,您应该传递需要通过操作在视图中转义的对象:

$this->object = $this->form->getObject();
最后,如果确实需要在视图中执行此操作,可以将对象从窗体传递到ObjectDecorator以转义它:

$escaped = new sfOutputEscaperObjectDecorator(ESC_SPECIALCHARS,$form->getObject());
echo $escaped->getName(); // Will return escaped value

谢谢我现在正在使用sfoutputexcaper::escapeESC_ENTITIES$object
$this->object = $this->form->getObject();
$escaped = new sfOutputEscaperObjectDecorator(ESC_SPECIALCHARS,$form->getObject());
echo $escaped->getName(); // Will return escaped value