Php Symfony3:如何在登录时更改角色

Php Symfony3:如何在登录时更改角色,php,symfony,Php,Symfony,我想在登录时更改角色,所以我的控制器中有一个表单可以让我登录,还有一个用户类的提供者,但我真的迷路了。我一直在symfony网站上寻找一些教程,但我仍然不知道如何做。因此,在登录之前,我在symfony工具栏上被认证为anon。但是当我登录时,我没有经过身份验证,但我在工具栏上看到了我的用户名。你能告诉我我需要看什么教程吗?我只是看不清楚如何进行身份验证,我已经搜索了几个小时。。。 这是我的控制器中的表格: 公共函数索引(请求$Request) { $player=新玩家; $form=$th

我想在登录时更改角色,所以我的控制器中有一个表单可以让我登录,还有一个用户类的提供者,但我真的迷路了。我一直在symfony网站上寻找一些教程,但我仍然不知道如何做。因此,在登录之前,我在symfony工具栏上被认证为anon。但是当我登录时,我没有经过身份验证,但我在工具栏上看到了我的用户名。你能告诉我我需要看什么教程吗?我只是看不清楚如何进行身份验证,我已经搜索了几个小时。。。 这是我的控制器中的表格:

公共函数索引(请求$Request)
{
$player=新玩家;
$form=$this->createFormBuilder($player)
->添加('email',TextType::class,数组('label'=>'email:'))
->添加('password',PasswordType::class,array('label'=>'Mot de passe:'))
->添加('login',SubmitType::class,array('label'=>'login'))
->getForm();
$form->handleRequest($request);
如果($form->isSubmitted()&&&$form->isValid())
{
$password=$form['password']->getData();
$email=$form['email']->getData();
$encoded_pass=sha1($form['password']->getData());
$date=date_create();
/*
在不同项目的基础上重新设计
这是一个很好的例子
*/
$player=$this->getDoctrine()
->getRepository('AppBundle:Player')
->findOneByEmail($email);
$pass\u check=$this->getDoctrine()
->getRepository('AppBundle:Player')
->findByPassword($encoded_pass);
如果(!$player)
{
返回$this->redirectToRoute('registration');
}
其他的
{
$pseudo=$this->getDoctrine()
->getRepository('AppBundle:Player')
->findOneByEmail($email)->getPseudo();
/*连接日期*/
$player->setDateLog($date);
/*基本要素差异中心*/
$em=$this->getDoctrine()->getManager();
$em->persist($player);///prépare l'insertion dans la BD
$em->flush();//insère dans la BD
$token=newusernamepasswordtoken($player,$player->getPassword(),“main”,$player->getRoles());
$event=新的InteractiveEngineent(新请求(),$token);
$this->container->get(“event\u dispatcher”)->dispatch(“security.interactive\u login”,$event);
$this->container->get(“security.token\u storage”)->setToken($token);
返回$this->redirectToRoute('acueil',array('pseudo'=>$pseudo));
}
}
返回$this->render('Sko/menu.html.twig',数组('form'=>$form->createView());
//En+renvoyer-la应答器

}
角色已加入用户。例如,Alex有角色用户,Jim有角色用户和角色管理员。在这种情况下,Jim具有管理员权限。如果您愿意,您可以为用户创建一个编辑表单,该表单只能由管理员访问,以更改特定用户的可用角色。但是,当我登录时,如何将“已验证”设置为“是”?在我登录后,它被设置为“否”,并且我不再是匿名的。这个statck答案将有所帮助:它可能显示您没有经过“身份验证”,因为您正在访问的url不需要经过身份验证的用户访问。尝试访问用户必须登录的URL,然后告诉您您已通过身份验证。