2014-01-15 95 views
1

我在这里处理的东西很愚蠢(我认为)。我正在Symfony2项目中使用PUGXMultiUserBundle,但是提交一个注册表单(对于我的每个注册表单类型)使我回到相同的表单,并且我不知道我在做什么错误。PUGXMultiUserBundle表单提交返回到表单,数据库不变(Symfony2)

假设我已经按照PUGXMultiUserBundle文档(https://github.com/PUGX/PUGXMultiUserBundle/blob/master/Resources/doc/index.md)的“成功”步骤1..6进行操作,并且具有上述行为...我在哪里混乱得如此严重?

* PUGXMultiUserBundle代码和行为遍布在许多文件中,我会提供您需要帮助识别问题的代码,如果我们可以将它圈选到某个部分。

在此先感谢!

+0

好吧,原来它不是一个捆绑的东西,更多的是形式呈现的东西。当我在注册模板的末尾渲染一个{{form_rest(form)}}时,它运行良好,但是当我渲染{{form_widget(form._token)}}(而不是其他的)时,它的行为就像我解释的。因为我不想渲染窗体中的所有字段(我在setEmail和setEmailCanonical方法的电子邮件后设置了用户名,但用户不需要输入),这对我来说是一个问题。我将在此发布另一个问题。谢谢你们。 – tasugo

+0

这是新的问题:http://stackoverflow.com/questions/21136201/fosuserbundle-twig-form-submit-not-expected-behaviour谢谢。 – tasugo

回答

0

请确保您已设置正确的路线:

# Acme/UserBundle/Resources/config/routing.yml 
user_one_registration: 
    pattern: /register/user-one 
    defaults: { _controller: AcmeUserBundle:RegistrationUserOne:register } 

user_two_registration: 
    pattern: /register/user-two 
    defaults: { _controller: AcmeUserBundle:RegistrationUserTwo:register } 

当你走在/register/user-one,你应该看到:

AcmeUserBundle:Registration:user_one.form.html.twig,当你走在/register/user-two,你应该看到AcmeUserBundle:Registration:user_two.form.html.twig

我有一种感觉,你的错误是在您的模板:

所以,当您在您的视图提交表单,你必须将其提交给正确的方法:

AcmeUserBundle:Registration:user_one.form.html.twig

<form action="{{ path('user_one_registration') }}" {{ form_enctype(form) }} method="POST"> 

AcmeUserBundle:Registration:user_two.form.html.twig

<form action="{{ path('user_two_registration') }}" {{ form_enctype(form) }} method="POST"> 
+0

感谢您的回复。我想,我有这个权利。除了两个操作(registerUserOneAction和registerUserTwoAction)都存在于同一个控制器中。这可能是一个问题吗?否则,我说得对。 – tasugo

+0

您需要[两个控制器](https://github.com/PUGX/PUGXMultiUserBundle/blob/master/Resources/doc/index.md#controllers)'RegistrationUserOneController'和'RegistrationUserTwoController'。因为这与'register'的方法相同。 – Mick

+0

试过了,没有运气。我的路线看起来像MyBundle:SameController:registerUserOne和MyBundle:SameController:registerUserTwo。这两个行动都是作为文件状态。还是同样的问题。 – tasugo