В CakePHP я создал поле с несколькими полями, заполненное множеством флажков. Я пытаюсь создать его в бутстрап-аккордеоне, чтобы каждая группа optgroup могла рухнуть.CakePHP Formhelper with Bootstrap Accordion
вход:
echo $this->Form->input('Subject', array(
'class' => 'checkbox-inline no_indent',
'type' => 'select',
'multiple' => 'checkbox',
'options' => $options
));
$options = array(
__('Primary') => array(
'1' => __('General'),
'2' => __('English'),
'3' => __('Maths'),
'4' => __('Science')
),
__('Secondary') => array(
'5' => __('General'),
'6' => __('English'),
'7' => __('Maths'),
'8' => __('Science')
)
);
стиль я хочу, чтобы изменить в:
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<legend>Primary</legend>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="1" id="SubjectSubject1" /><label for="SubjectSubject1">General</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="2" id="SubjectSubject2" /><label for="SubjectSubject2">English</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="3" id="SubjectSubject3" /><label for="SubjectSubject3">Maths</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="4" id="SubjectSubject4" /><label for="SubjectSubject4">Science</label></div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<legend>Secondary</legend>
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="5" id="SubjectSubject5" /><label for="SubjectSubject5">General</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="6" id="SubjectSubject6" /><label for="SubjectSubject6">English</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="7" id="SubjectSubject7" /><label for="SubjectSubject7">Maths</label></div>
<div class="checkbox-inline no_indent"><input type="checkbox" name="data[Subject][Subject][]" value="8" id="SubjectSubject8" /><label for="SubjectSubject8">Science</label></div>
</div>
</div>
</div>
</div>
Я сделал некоторые поиски, но я не мог найти способ изменить разметку за отказа группы .. не уверен, есть ли на самом деле способ сделать это?
Пожалуйста, исправьте меня, если я ошибаюсь. Расширение FormHelper позволяет вам устанавливать кучу классов начальной загрузки по умолчанию, поэтому вам не нужно устанавливать его отдельно. Я могу сделать что-то подобное в инструкции 'if':' $ class = array ('class' => 'form-control'); '' $ options = array_merge ($ class, $ options); 'Но это вещи Торт уже позволяет мне делать. Но в Cake нет параметров для изменения легенды и добавления div для обертывания тега. –
Да, есть. '' $ options ['before'] '', '' $ options ['between'] '', '' $ options ['separator'] '' и '' $ options ['after'] ''. Кроме того, с помощью этой функции вы можете создавать свои собственные параметры и возвращать их. Например, я могу добавить '' option ['icon'] '' и вернуть шрифт-удивительный значок с помощью ввода при вызове метода. – gmponos
По-прежнему не повезло. Независимо от того, какой пользовательский параметр я установил, Cake рассматривает его как атрибут во входном теге. Я также попытался подстроить массив ''format' => ('label', 'before', 'input', 'between', 'error', 'after')', но только упорядочивает порядок 'input' и' ярлык' .. и т. д., а не optgroup. Не могли бы вы изменить коды выше, чтобы я знал, где я делаю это неправильно? .. –