我在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
而不是上帝知道什么。我找到了两个丑陋的(在我看来)解决方法:
query_builder
,它将始终返回空集(如WHERE false = true
)。啊... 'mapped' => false
,但我不知道,它会在提交后生成正确的表单数据。我该如何解决这个问题?