Symfony 查询生成器在实体类型上返回Null时的占位符

Symfony 查询生成器在实体类型上返回Null时的占位符,symfony,symfony-forms,Symfony,Symfony Forms,我使用查询生成器创建了一个带有EntityType字段的表单: public function buildForm(FormBuilderInterface $builder, array $options) { $entity = $builder->getData(); $relatedParentId = $entity->getParentEntity()->getId(); $builder->add('myEntity', Enti

我使用查询生成器创建了一个带有EntityType字段的表单:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $entity = $builder->getData();

    $relatedParentId = $entity->getParentEntity()->getId();

    $builder->add('myEntity', EntityType::class, array(
        'class' => myEntity::class,
        'query_builder' => function(\AppBundle\Repository\myEntityRepository $eR) use ($relatedEntityId) {
            return $aR->getByParentId($relatedEntityId);
        },
    ))
}
当查询返回值时,一切正常。然而,当返回null时,它在表单上显示为一个空白选项,下拉列表为nothing,对用户不是很友好。我想要一条消息说没有返回结果


请注意,返回结果时不需要任何消息,因此“占位符”选项是不够的。我可能在文档中遗漏了一些明显的内容,但到目前为止我运气不佳。

使用占位符选项:

$builder->add('states', EntityType::class, array(
    'class' => myEntity::class,
    'query_builder' => function(\AppBundle\Repository\myEntityRepository $eR) use ($relatedEntityId) {
        return $aR->getByParentId($relatedEntityId);
     }
    'placeholder' => $hasResults ? false : 'No results',
));

在此之前构建hasResult标志。

使用占位符选项:

$builder->add('states', EntityType::class, array(
    'class' => myEntity::class,
    'query_builder' => function(\AppBundle\Repository\myEntityRepository $eR) use ($relatedEntityId) {
        return $aR->getByParentId($relatedEntityId);
     }
    'placeholder' => $hasResults ? false : 'No results',
));

您以前在何处构建hasResult标志。

您认为我以前必须使用单独的查询来构建hasResult标志,还是有一种方法可以直接基于查询生成器返回的内容来构建?在这个cas中,您可以使用选择类型而不是实体类型。因此,您可以使用相同的日期构建选择数组,并将其用于
hasResults
标志,该标志将只是一个
计数($results)
在您的情况下。您认为我必须在使用单独的查询之前构建hasResult标志,还是有一种方法可以根据查询生成器返回的内容直接构建该标志?在这个cas中,您可以使用选择类型而不是实体类型。因此,您可以使用相同的日期构建选择数组,并将其用于
hasResults
标志,在您的情况下,该标志将只是一个
计数($results)