首页 > 解决方案 > symfony 表单生成不是预期的占位符元素

问题描述

通常应该有两个输出都用分类ID填充 - 不知何故有一个“占位符”元素会导致错误。我真的不明白它是从哪里来的,有什么想法吗?我认为最好的想法是在屏幕截图中显示它(另外,它的一部分作为代码)。输出是用树枝的 dump() 函数。

在 dump() 中生成 symfony 表单元素 id(3 个表单元素,预期 2 个):

"id" => "Filter_filter_1462_boolcollectionradiomodell_placeholder"
"id" => "Filter_filter_1462_boolcollectionradiomodell_8368"
"id" => "Filter_filter_1462_boolcollectionradiomodell_33696" 

这里是带有 id 的屏幕截图和一些附加信息,例如 symfony 表单元素中的空值: 在此处输入图像描述

该值为空,其他的(预期的)填充有分类 ID。

这是 symfony 表单部分:

$builder->add(
    'filter_' . $filter->getId() . '_boolcollectionradio',
    EntityType::class,
    array(
        'class' => AutoTaxonomie::class,
        'choices' => $choices,
        'expanded' => true,
        'multiple' => false,
        'required' => false,
        'label' => ('detail' == $this->entry) ? $tmp : false,
        'attr' => array('data-taxid' => $filter->getId(), 'class' => 'form-group'),
        'choice_label' => function (AutoTaxonomie $taxonomie) {
            $view_data = array(
                'title' => $taxonomie->getTitle(),
                'beschreibung' => $taxonomie->getDescription(),
            );

            return json_encode($view_data);
        },
    )
);

symfony:3.4 树枝:2.5

任何建议都非常感谢,有一个很好的!

标签: formssymfonytwigformbuilder

解决方案


为 显示占位符元素EntityTypeField是默认设置,如文档中所述。尝试将其设置为 false 以防止其出现:

$builder->add('filter_', EntityType::class, array(
    'placeholder' => false,
));

推荐阅读