用户注册后,Symfony2 twig模板不会更新

时间:2016-11-23 10:08:23

标签: php symfony twig registration fosuserbundle

我在我的symfony2应用程序中有一个注册模式,它对模板工作正常,不会及时更新但在刷新一次后。

当我在我的应用程序中成功注册时,页面被重新加载并且我在我的应用程序中被连接(我可以在symfony调试器中看到它)但我仍然可以在我的标题中看到“登录”链接。和flash消息不显示(成功或失败是相同的)。

以下是标题的树枝代码:

    {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
        <li>
            <a href="{{ path('fos_user_security_logout') }}">
                <span class="menulink">Log out</span>
            </a>
        </li>
    {% else %}
        <li>
            <a data-toggle="modal" href="#registerModal">
                <span class="menulink">Register</span>
            </a>
        </li>
    {% endif %}

这是我的registerController

class RegistrationStandardUserController extends Controller
{
    public function registerAction(Request $request)
    {
            $em = $this->get('doctrine.orm.entity_manager');
            $user = new StandardUser();
            //Form creation based on my user entity
            $form = $this->createForm(RegistrationStandardUserType::class, $user);

            $form->handleRequest($request);
            if ($form->isSubmitted() && $form->isValid()) {
                $user       ->setEnabled(true);
                $em         ->persist($user);
                $em         ->flush();
                if (!$user) {
                    throw new UsernameNotFoundException("User not found");
                } else {
                    $request->getSession()->getFlashBag()->add('success', 'Félicitation '.$user->getFirstName().', vous êtes inscrit');
                    $this->authenticateUser($user);
                }
            }else if($form->isSubmitted() && !$form->isValid()){
                $request->getSession()->getFlashBag()->add('error', 'Il y a une erreur dans le formulaire d\'inscription');
            }

        return $this->render('UserBundle:Registration:register.html.twig', array(
                'form' => $form->createView(),
        ));
    }

    private function authenticateUser(StandardUser $user)
    {
        $discriminator = $this->get('pugx_user.manager.user_discriminator');
        $discriminator->setClass('UserBundle\Entity\StandardUser', true);
        $this->container->get('fos_user.security.login_manager')->loginUser($this->container->getParameter('fos_user.firewall_name'),$user);
    }
}

在我的模板中插入模态:

  <div class="modal fade" id="registerModal" role="dialog">
    <div class="modal-dialog modal-lg">
        <!-- Modal content-->
        {{ render(controller('UserBundle:RegistrationStandardUser:Register', {'request': app.request})) }}
    </div>
  </div> 

我不能解决这个问题。可能是我使用{{ render(controller('UserBundle:RegistrationStandardUser:Register', {'request': app.request})) }}在我的模板中插入表单的方式吗?

我正在使用fosUserBundlepugxMultiUser进行用户管理,但我不确定这里是否有理解这个问题。

0 个答案:

没有答案