我正在使用Symfony和Doctrine,我有一个函数,它将根据特定条件选择行:
$entities = $repository->getSomeEntities();
现在我想在选择列表中渲染这些实体,我检查了 entity
FormType但我无法查找.1377481_m .
例:
$builder->add('id','entity', array(
'class' => 'Path\To\Entity',
'property' => 'id'
));
上面的代码工作正常,除了它选择所有实体 .
我检查了Symfony文档http://symfony.com/doc/current/reference/forms/types/entity.html,似乎实现这一点的唯一方法是使用query_builder选项,它对我的情况不起作用
反正有没有将 $entities
数组添加到我的表单作为选择列表?
2 回答
看到你实现
ChoiceListProvider
.Symfony
中内置了许多实现,但您可能需要像SimpleChoiceListProvider
这样简单的内容 .将
EntityManager
实例传递给表单(通过构造函数或选项)将表单字段定义为
choice
,而不是entity
将其
choice_list
设为new MySimpleChoiceLIstProvider($this->entityManager)
您可以(可能会)将
EntityManager
之外的内容传递给提供者,如您所说"will select rows based on specific criteria" . 如果该条件源自表单本身,您应该通过FormEvents
来执行此操作,这将使您可以访问数据对象 .希望这可以帮助 .
根据您所写的内容,QueryBuilder没有理由不起作用 .
你应该有类似的东西:
“yourFunction”是您的存储库的一个功能,例如“getSomeEntities” .
你能告诉我们为什么它不起作用吗?谢谢