2

I'm trying to work with the FormHelpers::radio in CakePHP3 and I want to know how I could manage to do some HTML arround each input of the array.

If I check the documentation above, we can see that the Helper asks for those parameters.

Cake\View\Helper\FormHelper::radio(string $fieldName, array $options, array $attributes)

So, in my HTML I went for something similar with the two firsts. But when it comes to the $attributes array, there is no information on what I am able to do.

My code

<?php 
echo $this->Form->radio(
    'member',
    [
        ['value' => '1', 'text' => __("Free")],
        ['value' => '2', 'text' => __("Monthly")],
        ['value' => '3', 'text' => __("Yearly")],
    ],
    [
        'label' => [
            'class' => 'control-label'
        ],
        'before' => '<div>',
        'after' => '</div>'
    ] 
);
?>

The output

<div role="temp_div_for_demo">
   <input type="hidden" name="member" value="">

   <label class="control-label" for="member-1"><input type="radio" name="member" value="1" id="member-1">Free</label>
   <label class="control-label" for="member-2"><input type="radio" name="member" value="2" id="member-2">Monthly</label>
   <label class="control-label" for="member-3"><input type="radio" name="member" value="3" id="member-3">Yearly</label>                        
</div>

You can see that the label become "good" but my before and after <div> are not rendering.

My goal would be to wrap each input/label in a div (Something like this).

<div role="temp_div_for_demo">
   <input type="hidden" name="member" value="">

   <div class="radio"><label class="control-label" for="member-1"><input type="radio" name="member" value="1" id="member-1">Free</label></div>
   <div class="radio"><label class="control-label" for="member-2"><input type="radio" name="member" value="2" id="member-2">Monthly</label></div>
   <div class="radio"><label class="control-label" for="member-3"><input type="radio" name="member" value="3" id="member-3">Yearly</label></div>                     
</div>

Has somebody already experienced this problem?

Mr Lister
  • 45,515
  • 15
  • 108
  • 150
Patrice Poliquin
  • 373
  • 10
  • 21

0 Answers0