我有一个名为'Candidate'的实体。它并不那么特别。它本身就很好:我可以从一个类型创建一个表单并坚持下去。
class CandidateType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, array('label' => 'Naam'))
->add('openPosition', EntityType::class, array('class' => 'AppBundle:OpenPosition','choice_label' => 'subject','label' => 'Functie'))
;
}
但是,我希望能够创建此表单的集合,以便用户能够一遍又一遍地使用Javascript创建新的候选人,并立即保存所有候选人。我已经在另一个集合上做了一些工作(与另一个实体有一对多关系的实体,有一个原型和一些不错的Javascript)并且工作正常,但我似乎无法创建一个刚刚的集合一个实体(实际上听起来很像一个悖论,也许我的方法是错误的。)
对此有何想法?
答案 0 :(得分:0)
从symfony文档中 - 您可以使用jquery嵌入表单集合。通过使用数据原型和许多javascript / jquery,你应该可以做这些技巧。
以下是文档,我用它为用户管理多个地址添加,效果很好!
http://symfony.com/doc/current/form/form_collections.html#allowing-new-tags-with-the-prototype
但可以肯定的是,您必须创建一个自定义的multipleCreateAction()来处理候选人的多次创建。
答案 1 :(得分:0)
我已经按照Alvaro suggested的方式解决了这个问题:通过创建候选人的ArrayCollection:
bool exists = Enumerable.Range(0, dataRecord.FieldCount).Any(x => dataRecord.GetName(x) == "columnName"); // or with OrdinalIgnoreCase
然后我像其他任何形式集合一样处理它。