繁体   English   中英

在Symfony 3.4的下拉列表中删除空选项

[英]Remove empty options in dropdown in Symfony 3.4

我创建了一个表单,其中填充了符合特定条件的用户的下拉列表。 但是,将发送整个用户数组,但是不符合条件的条目为空白,因此我有一个下拉菜单,其中包含很多空白选项,我不希望这样做。 查看其他stackoverflow问题,使用了“占位符”和“ empty_values”,但它们似乎不起作用。

这是表格中的代码:

        ->add(
            'userParent',
            EntityType::class,
            [   
                'class' => User::class,
                'choice_label' => function ($parents) {
                    return $parents->getUniqueName();
                }

            ]
        )

和getUniqueName函数:

    public function getUniqueName() {

    $name = "";

    $nameBlock = json_decode($this->name, true);
    if (is_array($nameBlock) && isset($nameBlock['name'])) {
        $name = $nameBlock['name'];  
    } 
    return $name;
}

不好,我读得太快了。

由于字段是序列化的,因此无法使用自定义查询来过滤不带名称的实体,但是如果显示表单,仍可以在呈现时忽略空名称。 例如,通过覆盖表单主题,覆盖默认的choice_type主题或为您的字段设置自定义block_name并创建关联的主题,请参阅https://symfony.com/doc/current/form/form_form_customization.html#form-theming-in -twighttps://symfony.com/doc/current/reference/forms/types/form.html#block-name

->add(
        'userParent',
        EntityType::class,
        [   
            'class' => User::class,
            'query_builder' => function (\Doctrine\ORM\EntityRepository $repository) {
                    // fetch data from the repository based on your criteria
                    return $repository->findUsersFunction();

                    //or create the query right here
                    //return $er->createQueryBuilder('u')->where(); ...
                }

        ]
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM