对于与地址,电话号码等相关的元素。在表单中重用它们的最佳方法是什么?我应该创建某种帮助来做到这一点吗?
答案 0 :(得分:5)
我不建议帮助者。我只是扩展表单元素类,构建我的元素并以我需要的任何形式添加它。
class Project_Form_Element_PhoneNumber extends Zend_Form_Element
{
//look at the Zend_Form_Element class, it gives you most of the infrastructure
//look at how shipped elements are built on top of that class
}
答案 1 :(得分:2)
正如@markus所说,您可以创建扩展Zend_Form_Element
的自定义表单元素。
对于您所识别的用途 - 地址,电话号码 - 可能是其他元素的聚合但仍需要被视为单个实体,请查看Matthew Weier O'Phinney的博客文章:
Creating composite elements - phly, boy, phly
他在其中创建一个复合元素,表示由三个选择下拉列表组成的日期。
另一种方法是创建subform来表示其中一个实体。子表单类可以如下所示:
class My_Form_Subform_Address extends Zend_Form_Subform
{
public function init()
{
// add your elements
}
}
然后将子表单添加到主表单:
$form->addSubform(new My_Form_Subform_Address(), 'address');