我正在从XML文件加载Zend_Form:
<form>
<elements>
<role>
<type>MyProject_Form_Element_Select_Roles</type>
<options>
<label>Role:</label>
<value></value>
</options>
</role>
<valid>
<type>submit</type>
<options>
<label>Valid</label>
</options>
</valid>
</elements>
</form>
当然下面的XML不起作用,因为Zend不知道如何加载我的自定义字段(这只是Zend_Form_Element_Select的扩展名),但如果有人可以提供帮助,下面的行不起作用:
<form>
<elementPrefixPath>
<prefix>MyProject_Form_Element_Select</prefix>
<path>MyProject/Form/Element/Select</path>
<type>element</type>
</elementPrefixPath>
...
我发现这些配置功能真的很酷但是找到它们的信息或教程真的很难(我知道Zend_Form对象结构和预期的配置文件之间有一些映射规则,但我从来没有找到它的完整描述,如果有人有一个链接)
答案 0 :(得分:0)
这是正确的表单XML描述:
<form>
<prefixPath>
<element>
<prefix>MyProject_Form_Element_Select</prefix>
<path>MyProject/Form/Element/Select</path>
</element>
</prefixPath>
<prefixPath>
<element>
<prefix>MyLib_Form_Element_Select</prefix>
<path>MyLib/Form/Element/Select</path>
</element>
</prefixPath>
<elements>
<role>
<type>Roles</type>
<options>
<label>Role:</label>
<value></value>
</options>
</role>
<valid>
<type>submit</type>
<options>
<mycustomoption></mycustomoption>
<label>Valid</label>
</options>
</valid>
</elements>
</form>
自定义选项将在Element
的构造函数的$ options参数内发送class MyProject_Form_Element_Select_Roles extends Zend_Form_Element_Select
{
public function __construct($spec, $options = null) {
//don't forget to call parent !
//$options is a Zend_Config that should have as a member mycustomptions
}
}