在 Zend 2 Forms 中禁用转义
Diasble escaping in Zend 2 Forms
看来在某些情况下,允许不转义地设置表单元素的属性可能会派上用场。例如通过
分配多个类
class="class1 class2"
或者使用bootstrap验证匹配字段,需要属性
data-match="#field1"
在field2上检查field1和field2的内容是否相同
如果我这样创建空格和井号,ZF2 表单创建机制都会对其进行转义:
$this->add(array(
'name' => 'field2',
'type' => 'text',
'attributes' => array(
'data-match' => '#field1'
)
));
我对此进行了大量搜索,但到目前为止一无所获(除了一两个与 ZF1 有关的过时答案外)。粗略查看 ZF2 的源代码进一步表明,禁用转义可能确实根本不可能,没有直接的方法来完成我想要的。但我发现这很难想象,并且仍然更愿意相信我不擅长搜索和 PHP。哪个是正确的?
正如有人在 Twitter 上好心地向我指出的那样,data-match 显然也分离 类 也适用于转义的 spaces/hashes。这并没有发生在我身上,因为我没有预料到它并且我的代码由于无关原因无法正常工作。但鉴于此,逃生器当然可以通用,不会造成描述的问题。
看来在某些情况下,允许不转义地设置表单元素的属性可能会派上用场。例如通过
分配多个类class="class1 class2"
或者使用bootstrap验证匹配字段,需要属性
data-match="#field1"
在field2上检查field1和field2的内容是否相同
如果我这样创建空格和井号,ZF2 表单创建机制都会对其进行转义:
$this->add(array(
'name' => 'field2',
'type' => 'text',
'attributes' => array(
'data-match' => '#field1'
)
));
我对此进行了大量搜索,但到目前为止一无所获(除了一两个与 ZF1 有关的过时答案外)。粗略查看 ZF2 的源代码进一步表明,禁用转义可能确实根本不可能,没有直接的方法来完成我想要的。但我发现这很难想象,并且仍然更愿意相信我不擅长搜索和 PHP。哪个是正确的?
正如有人在 Twitter 上好心地向我指出的那样,data-match 显然也分离 类 也适用于转义的 spaces/hashes。这并没有发生在我身上,因为我没有预料到它并且我的代码由于无关原因无法正常工作。但鉴于此,逃生器当然可以通用,不会造成描述的问题。