Zend framework 如何设置选中复选框的zend multiCheckbox表单字段?

Zend framework 如何设置选中复选框的zend multiCheckbox表单字段?,zend-framework,zend-form,Zend Framework,Zend Form,我有以下表格: $this->addElement ( 'multiCheckbox', 'servers2', array ( 'checkedValue' => '0', 'multiOptions' => array( '11.com' => '.com',

我有以下表格:

$this->addElement ( 
            'multiCheckbox', 'servers2', 
            array (
                   'checkedValue' => '0',
                   'multiOptions' => array(
                        '11.com' => '.com',
                        '12.com' => '12.com',
                        '16.com' => '16.com',
                        '3.com' => '17.com'
                        )
            ));
问题是,
checkedValue
不适用于此设置,它适用于简单的复选框。我还尝试了
'checkedValues'=>数组('1','0')
,单数或复数, 但看不到尽头

有什么想法吗


谢谢

要将某些复选框标记为选中,请尝试以下操作:

$multiCheckElement->setValue(array('11.com', '3.com'));

// or 

$this->addElement ( 
    'multiCheckbox', 'servers2', 
    array (
        'value' => array('11.com', '3.com'), // select these 2 values
        'multiOptions' => array(
                    '11.com' => '.com',
                    '12.com' => '12.com',
                    '16.com' => '16.com',
                    '3.com' => '17.com'
                    )
    )
);

另请参见

ZF2将要求您使用值_选项

$form->add(
        array(
            'name' => 'servers2',
            'type' => \Zend\Form\Element\MultiCheckbox::class,
            'attributes' => array(
                'id' => 'servers2',
                'class' => 'form-control',
            ),
            'options' => array(
                'label' => 'Servers 2',
                'column-size' => 'sm-10',
                'label_attributes' => array('class' => 'col-sm-2'),
                'twb-layout' => 'horizontal',
                'value_options' => array(
                    '11.com' => '.com',
                    '12.com' => '12.com',
                    '16.com' => '16.com',
                    '3.com' => '17.com'
                )
            ),
        )
    );

要指定选中的选项,请参见 使用
'selected'=>true
属性:

$options = array(
    array(
        'value' => '0',
        'label' => 'Apple',
        'selected' => false,
        'disabled' => false,
        'attributes' => array(
            'id' => 'apple_option',
            'data-fruit' => 'apple',
        ),
        'label_attributes' => array(
            'id' => 'apple_label',
        ),
    ),
    array(
        'value' => '1',
        'label' => 'Orange',
        'selected' => true,
    ),
    array(
        'value' => '2',
        'label' => 'Lemon',
    ),
);

谢谢,我没有意识到它必须是一个数组。我一直按顺序设置值,但它只是勾选了最后一个选定的值。当我使用setValue($arrayOfCheckedValues)时,这在zend 2中不起作用,你知道如何修复它吗?问题是在选中的每个复选框中设置一个勾号。你的回答似乎没有提供这些信息。它只显示可能的选项,而不是选中的选项。不,答案在上面(用数组填充的“value”键)。我只是想告诉您,ZF2要求命名为
value\u options
,而不是
multiOptions
。我的错误是Rob。我没有看到@drew010答案中的
value
属性是在Zend 1中指定它的方式。我正在寻找和尝试ZF2,正如你提到的,它使用了另一个
value\u options
属性。现在一切都对你有效了吗?是的,它有效了,我把我的工作方案贴在这里记录在案。