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