Symfony 查询生成器在实体类型上返回Null时的占位符
我使用查询生成器创建了一个带有EntityType字段的表单: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
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)
。