Я хочу реализовать следующее поле в symfony2. У него есть 2 радио-кнопки, и они стилизованы под Switch с использованием некоторого стиля начальной загрузки.
выше HTML и фрагмент начальной загрузки отображает желаемый результат
<div class="btn-group btn-toggle" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" value="option1"> On
</label>
<label class="btn btn-default">
<input type="radio" name="options" value="option2" checked=""> Off
</label>
</div>
какие выводы
для работы этого примера требуется тег внутри тега.
но рендеринг форм Symfony
<radio>..</radio>
<label></label>
как я могу сделать <radio>
тег внутри <label>
используя Symfony Form Builder?
В симфонии для флажка мы используем этот код, но он отображает обычную группу радио,
->add('check', 'choice', array(
'choices' => array(
0 => 'On',
1 => 'Off'
),
'expanded' => true,
'multiple' => false,
'data' => 1
))
Прочитай это:
http://symfony.com/doc/current/cookbook/form/form_customization.html
И посмотрите на это: https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
в ProjectType.php
$builder->add('progress', 'choice', array('label'=>'State of the project',
'expanded' => true,
'multiple' => false,
'choices' => array(
'1'=>'Draft',
'2'=>'Advanced',
'3'=>'Final step',
)));
веточка:
<div class="form-group">
{{ form_label(form.progress) }}
<div class="col-sm-9 btn-group" data-toggle="buttons">
{% for key,choice in form.progress.vars.choices %}
<label class="btn btn-default {% if choice.value == form.progress.vars.value %}active{% endif %}">
<input type="radio" id="{{ form.progress.vars.id }}_{{ key }}" {% if choice.value == form.progress.vars.value %}checked{% endif %}
autocomplete="off" name="{{ form.progress.vars.full_name }}" value="{{ choice.value }}">
{{ choice.label }}
</label>
{% endfor %}
</div>
</div>