ZF2形成阵列

时间:2013-04-27 13:20:35

标签: forms zend-framework2 zend-form

我想创建一个包含几个字段的简单zend表单,但我想将这些字段收集到一个数组中。我希望看到我的表单名称如下:

name="login[username]" name="login[password]" name="login[submit]"

我无法找到任何描述。如果有人知道解决方案,请告诉我!

1 个答案:

答案 0 :(得分:3)

您可以尝试使用fieldsets之类的

namespace Application\Form;

use Application\Entity\Brand;
use Zend\Form\Fieldset;
use Zend\InputFilter\InputFilterProviderInterface;

class YourFieldset extends Fieldset implements InputFilterProviderInterface
{
    public function __construct()
    {
        parent::__construct('login');

        $this->add(array(
            'name' => 'username',
            'options' => array(
                'label' => 'Username'
            ),
            'attributes' => array(
                'required' => 'required'
            )
        ));

        $this->add(array(
            'name' => 'password',
            'type' => 'Zend\Form\Element\Password',
            'options' => array(
                'label' => 'Password'
            ),
            'attributes' => array(
                'required' => 'required'
            )
        ));

    $this->add(array(
            'name' => 'submit',
            'type' => 'Zend\Form\Element\Submit',
            'options' => array(
                'label' => 'Submit'
            ),
            'attributes' => array(
                'required' => 'required'
            )
        ));
    }

    /**
     * @return array
     */
    public function getInputFilterSpecification()
    {
        return array(
            'name' => array(
                'required' => true,
            )
        );
    }
}