0

我使用Zend\Form\Element\MultiCheckboxZend\Form\View\Helper\FormMultiCheckbox如何啓用在ZF2中顯示全局標籤unsof FormMultiCheckbox?

MyFieldset.php

// namespace ...; 
// use ....; 
class MyFieldset extends Fieldset 
{ 
    // ... 
    public function init() 
    { 
     parent::init(); 
     $this->add(
      [ 
       'type' => 'multi_checkbox', 
       'name' => 'mymulticheckbox', 
       'options' => [ 
        'label' => _('global label'), 
        'label_attributes' => [ 
         'class' => 'col-md-3', 
        ], 
        'value_options' => [ 
         [ 
          'value' => 'foo', 
          'label' => 'FOO', 
         ], 
         [ 
          'value' => 'bar', 
          'label' => 'BAR', 
         ], 
         [ 
          'value' => 'buz', 
          'label' => 'BUZ', 
         ], 
        ] 
       ], 
      ] 
     ); 
    } 
    // ... 
} 

myform.phml

use Zend\Form\View\Helper\FormMultiCheckbox; 
echo $this->formMultiCheckbox($myFieldset->get('mymulticheckbox'), FormMultiCheckbox::LABEL_PREPEND); 

它的工作原理,但不顯示 「global label」。它被顯示,當我使用Zend\Form\View\Helper\FormElement時,但FormMultiCheckbox似乎忽略了「全球label」。

如何使FormMultiCheckbox顯示覆選框列表的label

回答

0

您是否嘗試過formRow()。對我來說它有效。這看起來沒有在formMultiCheckbox()中進行管理。見線182-193,文件zend-form/src/View/Helper/FormRow.php

// Multicheckbox elements have to be handled differently as the HTML standard does not allow nested 
// labels. The semantic way is to group them inside a fieldset 
if ($type === 'multi_checkbox' 
    || $type === 'radio' 
    || $element instanceof MonthSelect 
    || $element instanceof Captcha 
) { 
    $markup = sprintf(
     '<fieldset><legend>%s</legend>%s</fieldset>', 
     $label, 
     $elementString 
    ); 
+0

謝謝你的回答!是的,正如我在我的問題中寫的,我已經用'FormRow'視圖助手來試用它。不幸的是,它有缺點,那麼標籤位置不能被定義爲希望('formRow($ field,'prepend')'不適用於'MultiCheckbox'es)。最後,我通過手動完成所有工作來完成工作:''

'。 $ this-> translate($ myFieldSet-> get('mymulticheckbox') - > getLabel())。 ''。 $ this-> formMultiCheckbox($ myFieldSet-> get('mymulticheckbox'),FormMultiCheckbox :: LABEL_PREPEND)'這很醜,但它的工作原理。 – automatix

+0

哦,是的,沒有其他的選擇。 –

相關問題