Php Symfony 2.3:访问其他站点时记住表单输入

Php Symfony 2.3:访问其他站点时记住表单输入,php,forms,session,symfony,Php,Forms,Session,Symfony,我所拥有的: 具有多个不同输入字段等的表单。有趣的部分是集合字段: $builder->add( 'publicationAuthors', 'collection', array ( 'type' => new AuthorPublicationType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference

我所拥有的:

具有多个不同输入字段等的表单。有趣的部分是集合字段:

$builder->add( 'publicationAuthors', 'collection', array (
            'type' => new AuthorPublicationType(),
            'allow_add' => true,
            'allow_delete' => true,
            'by_reference' => false,
            'label' => 'Autoren' 
));
此集合引用另一个FormType,仅包括实体字段和订单id:

public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder->add( 'author', 'entity', array (
            'class' => 'indPubBundle:Author',
            'multiple' => false,
            'label' => 'Autor',
            'query_builder' => function (EntityRepository $er) {
                return $er->createQueryBuilder( 'a' )
                    ->orderBy( 'a.author_surname', 'ASC' );
            } 
    $builder->add( 'order_id', 'hidden');
    ));
}
通过JS,我可以向我的表单添加新的集合表单字段,这样用户就可以选择几个作者并对他们进行排序

我需要什么:

到目前为止,由于实体字段的原因,用户只能选择现有作者。我想增强表单,这样用户也可以创建新的作者并在表单中使用这些作者。我想添加一个按钮,将用户重定向到一个新表单,在那里他可以创建一个新的作者。然后,在提交表单之后,用户应该被重定向回原始表单并继续填写

这里的主要问题是,我想记住用户以前对原始表单的输入,这样他就不需要从头开始了。当用户使用作者创建表单时,是否有办法记住这些输入


我想记住会话中的数据,但有一个问题:如果用户打开一个新选项卡,他可能会覆盖旧的表单输入,因为两个选项卡的会话ID相同。

好的,我找到了一个令我满意的解决方案。 基本上,我将整个表单数据序列化,并将其保存在隐藏的表单字段中。
因为serialize函数返回几个在html中不可用的符号,所以我还使用base64对字符串进行编码。

您可以使用session进行编码,只需将其保存在数组中,如果session已经存在,只需在数组中添加新实体,而不是创建新会话。好的,但是,我如何在事后区分不同的条目呢?