Форма Symfony CheckboxType внутри CollectionType = прототип пуст - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь использовать CheckBoxType в форме внутри CollectionType, но прототип содержит только метку и вообще не имеет флажков!

Это действительно странно;Я не понимаю, потому что документация Symfony здесь не упоминает ничего особенного?

Когда я нажимаю на кнопку, чтобы добавить новый файл, я получаю только ярлык

Чего мне не хватает, пожалуйста?

КОЛЛЕКЦИЯ

->add('file', CollectionType::class, array(
    'label' => false,
    'entry_type' => FileType::class,
    'error_bubbling' => false,
    'entry_options' => [ 'required' => false, 'error_bubbling' => true, ],
    'allow_add' => true,
    'allow_delete' => true
))

ПЕРЕДАЧА ВНУТРИ FILETYPE

->add('main', CheckboxType::class,[
     'label'    => 'Make this one the main picture',
     'required' => false,
]);

РЕЗУЛЬТАТ ПРОТОТИПА

data-prototype="<div id=\"new_item_group_pictures_itemFile___name__\">    <div class=\"form-item\"><div class=\"form-label\"></div><div class=\"custom-select\"><input type=\"file\" id=\"new_item_group_pictures_itemFile___name___file\" name=\"new_item[group_pictures][itemFile][__name__][file]\" class=\"form-file\" /></div></div>    <div class=\"form-item\"><div class=\"form-label\"><label for=\"new_item_group_pictures_itemFile___name___description\">Description</label></div><input type=\"text\" id=\"new_item_group_pictures_itemFile___name___description\" name=\"new_item[group_pictures][itemFile][__name__][description]\" maxlength=\"255\" class=\"form-input form-text\" /></div>    <div class=\"form-item\"><div class=\"form-label\"><label for=\"new_item_group_pictures_itemFile___name___main\">Make this one the main picture</label></div></div></div>"

ЕДИНАЯ СОБСТВЕННОСТЬ

 /**
 * @var boolean
 * @ORM\Column(type="boolean", nullable=true)
 */
private $main;

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы должны визуализировать свою вложенную коллекцию форм, итерируя по ней:

{% for t in form.file %}
    {{ form_row(t) }}
{% endfor %}

Это отобразит каждый флажок, и вы можете манипулировать ими в своем представлении

Обычно checkboxType должен работать нормально, ноЕсли вы хотите попробовать другое решение, вы можете установить вторую форму на ChoiceType и добавить расширенный (чтобы расширить выбор, например, флажки) и несколько true.

->add('main',  ChoiceType::class,[
     'label'    => 'Make this one the main picture',
     'required' => false,
     'choices' => array(),
     'expanded' => true,
     'multiple' => true
]);
0 голосов
/ 28 декабря 2018

Метка типа коллекции должна иметь значение true , и при отображении поля формы типа коллекции используйте form_widget вместо form_row

...