我在我的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})) }}
在我的模板中插入表单的方式吗?
我正在使用fosUserBundle
和pugxMultiUser
进行用户管理,但我不确定这里是否有理解这个问题。