Symfony如何创建空SELECT(ChoiceType)?

时间:2016-02-23 14:08:28

标签: php forms symfony

我在Symfony 2.8上。我有Movie个实体,其中有Actor个实体(ManyToMany)。最近我意识到创建实体会遇到问题,当数据库中有很多演员时,我想在Actor字段上有ajax-autocompleter。在管理员方面(Sonata)没有问题,但在用户方面我使用PUGXAutoCompleterBundle失败了(不支持ManyToMany)。

我创建了API动作,它返回带有匹配搜索字符串的actor的JSON,我想用它来使用select2,但是我在构建阶段遇到了问题。 我希望尽可能少地进行更改,因此我之前的createAction可以正常工作。不幸的是,我无法创建空SELECT,然后使用Select2填充它。当我这样做时:

->add('actors', ChoiceType::class)

(或使用'empty_value' => true'choices' => []'),我得到:

The value of type "object" cannot be converted to a valid array key.

我认为这是因为actors实体中存在Movie字段,而ArrayCollection实体应该是Actor而不是上帝知道什么。我找到了两个丑陋的(在我看来)解决方法:

  1. 添加query_builder,它将始终返回空集(如WHERE false = true)。啊...
  2. 添加'mapped' => false,但我不知道,它会在提交后生成正确的表单数据。
  3. 我该如何解决这个问题?

0 个答案:

没有答案