阅读并使用我所拥有的东西,我得出结论,我走在正确的道路上,只需像其他任何形式一样嵌入表单:
$builder->add('user', 'fos_user_registration', array(
'label' => 'Sign up',
'error_bubbling' => false
));
而且我一直认为我必须将我的验证组与 FOSUser 的验证组对齐?:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'ACME\ReviewBundle\Entity\Review',
'flowStep' => 1,
'validation_groups' => array('Registration', 'Profile')
));
}
也许Default
也有?:
'validation_groups' => array('Default', 'Registration', 'Profile')
但是,验证仍在通过,它在数据库级别失败,所以我猜我需要做其他事情来分配验证组?
除此之外,我也不确定这个处理是如何工作的,我可以从 FOSUser 表单处理程序和控制器中提取一部分,但这似乎有点湿,我想知道是否有更好的方法?让这一切都依赖于相同的逻辑会很好。
为了提供一些上下文,我正在使用 CraueFormFlow 并且我有一个用户需要能够启动或不启动的过程。如果他们未经身份验证,则该过程的后续步骤需要他们注册或登录。
我需要保留在身份验证之前收集的数据,据我所知,如果我可以将注册和登录表单嵌入到我的主表单中,这应该自然而然地发生。
注意:我关闭了电子邮件确认,所以这不是问题,并且应该可以使整个过程线性化,用户通过身份验证并提交他们的评论。