【问题标题】:Zend_Form - Array based elements?Zend_Form - 基于数组的元素?
【发布时间】:2010-09-29 04:28:03
【问题描述】:

使用 Zend_Form,我将如何创建这样的表单元素:

<input type="text" name="element[1]" value="" />
<input type="text" name="element[2]" value="" />
// etc...

【问题讨论】:

    标签: php zend-framework zend-form


    【解决方案1】:

    您可以使用子表单:

    $form = new Zend_Form();
    
    $subForm = new Zend_Form_SubForm();
    $subForm->addElement('Text', '1')
            ->addElement('Text', '2');
    
    $form->addSubForm($subForm, 'element');
    

    或者您也应该能够在表单元素上使用setBelongsTo()(未经测试):

    $form = new Zend_Form();
    $form->addElement('Text', '1', array('belongsTo' => 'element'))
         ->addElement('Text', '2', array('belongsTo' => 'element'));
    

    【讨论】:

    • 第二,表格似乎更干净,更直接,并且工作正常(经过测试)。
    • 如果有人在验证、getValue() 等方面遇到问题 - 请参阅 ZF 跟踪器上的 已解决 票证:framework.zend.com/issues/browse/ZF-2563
    • 我会使用子表单,belongsTo 给我带来了各种各样的悲伤,因为我想使用重复的复合字段集(例如:我想共享同名的街道和邮政地址字段子字段)。仅将 belongsTo 用于最基本的字段分组,否则使用子表单并省去麻烦。
    【解决方案2】:

    我认为setBelongsTo 质量不合格,因为无法设置默认值。因此,目前还没有合理的方法来实现您的目标。

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 2021-11-24
      • 2017-02-04
      • 2022-08-23
      相关资源
      最近更新 更多