如何解决如何在Zend_Form中添加\'[]\'到表单元素名称?
| 我正在创建这样的表单元素 $elements = array();
$element = $this->CreateElement(\'checkbox\',\'field[0]\' );
$element->setLabel( \'MyField1\' );
$element->setAttrib( \'checked\',true );
$elements[] = $element;
$element = $this->CreateElement(\'checkbox\',\'field[1]\' );
$element->setLabel( \'MyField2\' );
$element->setAttrib( \'checked\',true );
$elements[] = $element;
$this->addElements( $elements );
而是设置setting1ѭ和name=\'field1\'
而不是name=\'field[0]\'
和name=\'field[1]\'
如何在元素名称中添加“ 5”?
谢谢
解决方法
看到
http://framework.zend.com/manual/zh/zend.form.standardElements.html#zend.form.standardElements.multiCheckbox
, 我读了2种解决方案,一种是
setElementsBelongTo
,另一种是setIsArray
,但是这些解决方案对我来说并不舒服,为什么它们挡住了我不明白的括号。为什么为什么?
我认为一种方法就是编辑过滤器功能以允许使用括号。
, 我认为它仅在以下形式不支持zend形式:
Zend_Form_SubForm
喜欢
$foo = new Zend_Form_SubForm();
$foo->setElementsBelongTo(\'foo\')
->setElements(array(
\'bar\' => \'text\',\'baz\' => \'text\'
));
echo $foo;
给你:
<input type=\"text\" name=\"foo[bar]\" id=\"foo.bar\" value=\"\" />
<input type=\"text\" name=\"foo[baz]\" id=\"foo.baz\" value=\"\" />
, 看到
http://zend-framework-community.634137.n4.nabble.com/Zend-Form-Element-set-name-allowBrackets-td679084.html
因此,首先,名称内部不允许带有方括号,以便
多种其他功能也可以使用(主要是过载访问)。
也就是说,您可以强制括号在输出中多次出现
不同的方式。
如果您想使用方括号来捕获多个值-
即,例如\'foo [] \'之类的名称-打开isArray属性:
$element->setIsArray(true); // or pass a true value to the
// \"isArray\" key during
// instantiation
如果您希望该值成为另一个值的键,例如,
\“ bar [foo] \”,那么您需要告诉该元素它属于另一个元素
值:
$element->setBelongsTo(\'bar\'); // or pass the value to the
// \'belongsTo\' key during
// instantiation
如果您使用子表单,则默认情况下会使用数组符号;所有
元素\“ belongTo \”子表单的名称
, 这对我有用
$file = $this->createElement(\'file\',\'myImgUpload\');
$file->setAttrib(\'name\',\'myImgUpload[]\');
顺便说一句:在Zend_Form_Element::setName()
中,方法Zend_Form_Element::filterName()
剥去括号
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。