2015-12-09 3 views
0

Я хочу, чтобы настроить вывод HTML радиокнопок на Zend Framework 2. Я использую класс Zend\Form\FieldsetКак настроить вывод HTML-переключателей на ZF2?

В моем классе Fieldset как это:

$this->add(array( 
    'name' => 'type', 
    'type' => 'Zend\Form\Element\Radio', 
    'attributes' => array(
     'value' => $this->getType(), 
    ), 
    'options' => array( 
     'label' => 'Type', 
     'label_attributes' => array(
      'class' => '', 
     ), 
     'value_options' => array(
      '1' => 'Option 1', 
      '2' => 'Option 2', 
      '3' => 'Option 3' 
     ), 
    ), 
)); 

На мой взгляд:

<div class="row"> 
    <div class="input-field col s6"> 
     <?php echo $this->formRadio($form->get('type')) ?> 
    </div> 
</div> 

И печатает так:

<div class="row"> 
    <div class="input-field col s6"> 
     <label class="radio"> 
      <input type="radio" name="type" value="1" checked="checked">Option 1 
     </label> 
     <label class="radio"> 
      <input type="radio" name="type" value="2">Option 2 
     </label> 
     <label class="radio"> 
      <input type="radio" name="type" value="3">Option 3 
     </label> 
    </div> 
</div> 

Но я хочу его отпечатки, как показано ниже:

<div class="row"> 
    <div class="input-field col s6"> 
     <p> 
      <input name="type" type="radio" id="option1" /> 
      <label for="option1">Option 1</label> 
     </p> 
     <p> 
      <input name="type" type="radio" id="option2" /> 
      <label for="option2">Option 2</label> 
     </p> 
     <p> 
      <input name="type" type="radio" id="option3" /> 
      <label for="option3">Option 3</label> 
     </p> 
    </div> 
</div> 

мне нужно изменить, потому что я использую MaterializeCSS для моего макета и он работает только так, я думаю.

UPDATE

Мое решение было:

<div class="row"> 
    <div class="input-field col s6"> 
     <?php $element = $form->get('type') ?> 
     <?php foreach ($element->getValueOptions() as $value => $label): ?> 
      <?php $checked = $value == $element->getValue() ? 'checked="true"' : ''; ?> 
      <p> 
       <input name="<?php echo $element->getName() ?>" type="radio" id="<?php echo $element->getName().$value ?>" value="<?php echo $value ?>" <?php echo $checked ?>> 
       <label for="<?php echo $element->getName().$value ?>"><?php echo $label ?></label> 
      </p> 
     <?php endforeach ?> 
    </div> 
</div> 

ответ

2

Если вы хотите другое представление ваших элементов формы, вы должны называть их sepperatly.

Посмотрите на http://zf2cheatsheet.com/#form и прокрутки вниз списка помощников

+0

ZF Docs всасывает так много, что даже нужно недоделок от третьих лиц ... :-( – LeandroCR

+0

Нет необходимости в Cheatsheet, просто прочитать код из рамки, на самом деле это не специальные – PAlphen

 Смежные вопросы

  • Нет связанных вопросов^_^