2016-02-24 2 views
0

Во-первых, я успешно реализовал Multiple Select коробочку с опцией группы, основанные на обеспечении, обеспечивающего группу опций структурированную, как это:CakePHP 3 - Форма Select Option Group - Несколько Флажки

$options = [ 
    'Group 1' => [ 
     'Value 1' => 'Label 1', 
     'Value 2' => 'Label 2' 
    ], 
    'Group 2' => [ 
     'Value 3' => 'Label 3' 
    ] 
]; 
echo $this->Form->select('field', $options); 

Это прямой от Поваренной книги по адресу: http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-select-pickers

Он отлично работает и делает выбор в точности так, как должен. Моя проблема в том, что я хотел бы изменить отображение на несколько флажков. Для того, чтобы сделать это, я переключился код на:

echo $this->Form->input('field', [ 
     'multiple' => 'checkbox', 
     'options' => $options 
    ]); 

Когда я делаю это, дисплей заканчивает тем, что один флажок, со всеми вариантами, перечисленных вне рядом с ним.

В поисках StackOverflow, я обнаружил следующее: How to create multiple checkboxes grouped by fieldsets in Cakephp 3

Большинство, кажется, указывают, что функциональность не входит в торт, и что вам нужно, чтобы построить его по своему усмотрению. Существует один комментарий по первому вопросу, который ссылается на поваренную книгу и что она конкретно заявляет:

Если вы хотите сгенерировать выбор с помощью групп opt, просто передайте данные в иерархическом формате. Это работает также с несколькими флажками и переключателями, но вместо optgroups обматывает элементы в полях:

Никто, кажется, не обращается к комментарию по этому вопросу. Мой вопрос очень прост. Предоставляет ли CakePHP 3 несколько флажков, созданных как указано в документации, или неверна документация, и эта функциональность не включена в ядро? Если ответ заключается в том, что функциональность включена в ядро, в чем трюк, чтобы заставить его работать?

Спасибо!

+0

Последний раз, когда я смотрел на него, документация была неправильно здесь. Надеюсь, что в какой-то момент кто-то реализует функциональность, которую он описывает. –

+0

Грег, спасибо за отзыв. Я успешно реализовал ответ, найденный в связанном вопросе, но не пошел так далеко, как сделать свой собственный виджет, поскольку мне это нужно только в одном месте. Если я сделаю виджет, я обязательно поделюсь им здесь. Тем не менее, было бы неплохо иметь функциональность, описанную в книге, включенной в ядро. – jtesta

ответ

1

в этой мульти выберите флажок

<?= $this->Form->select('input_name',$checkboxarray, array('selected' =>$send_checkbox_select,'multiple' => 'checkbox')); ?> 

$checkboxarray=[ 
    'Value 1' => 'Label 1', 
    'Value 2' => 'Label 2' 
`], 
+0

Ваше решение будет работать для создания множественного выбора в форме флажка, но оно не отвечает на вопрос. Проблема заключается в том, чтобы включать ваши варианты в иерархическом формате с целью получения сгруппированных флажков. Ваше решение включает только один уровень параметров, а не уровень группировки, а затем уровень параметров, как указано в исходном вопросе. – jtesta

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