Php 从formBuilder提交后的简单重定向
我无法在连接后重定向用户 这是我的密码:Php 从formBuilder提交后的简单重定向,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我无法在连接后重定向用户 这是我的密码: public function indexAction(Request $request) { $css = array('class' => 'form-control'); $btn = array('class' => 'btn btn-info btn-raised', 'value' => 'Valider'); $formulaire = $this->createFormBuild
public function indexAction(Request $request) {
$css = array('class' => 'form-control');
$btn = array('class' => 'btn btn-info btn-raised', 'value' => 'Valider');
$formulaire = $this->createFormBuilder()
->add('login', 'text', array('label' => 'Identifiant', 'attr' => $css))
->add('pwd', 'password', array('label' => 'Mot de passe', 'attr' => $css))
->add('submit', 'submit', array('attr' => $btn))
->getForm();
$formulaire->handleRequest($request);
if ($formulaire->isValid()) {
$data = $formulaire->getData();
$this->authentificationAction($data);
}
return $this->render('GestUtilisateursBundle:Auth:index.html.twig', array('leFormulaire' => $formulaire->createView()));
}
public function authentificationAction($data) {
$login = $data['login'];
$pwd = sha1($data['pwd']);
$dataConnect = array('login' => $login, 'pwd' => $pwd);
$orderBy = null;
$em = $this->getDoctrine()->getManager();
$visiteur = $em->getRepository('GestUtilisateursBundle:Visiteur')->findBy($dataConnect, $orderBy, 1, 0);
var_dump($visiteur);
//Si on ne trouve pas le visiteur
if (!$visiteur) {
throw $this->createNotFoundException('Identifiant ou mot de passe incorrect');
}
$session = $this->getRequest()->getSession();
$session->set('visiteur', $visiteur);
return $this->redirectToRoute('gsb_gest_utilisateurs_home');
}
我的路线gsb_gest_使用家路线:
public function indexAction() {
$session = $this->getRequest()->getSession();
$visiteur = $session->get('visiteur');
return $this->render('GestUtilisateursBundle::layout.html.twig', array('visiteur' => $visiteur));
}
My routing.yml:
gsb_gest_utilisateurs_homepage:
path: /
defaults: { _controller: GSBGestUtilisateursBundle:Auth:index }
gsb_gest_utilisateurs_home:
path: /home
defaults: { _controller: GSBGestUtilisateursBundle:Home:index }
通过执行这段代码,我没有任何问题,我把信息放在表单上,提交给我对象,它的工作。
只有它更新了索引页面,所以我会打开布局模板,同时保留变量细枝以备以后使用
我不明白为什么它不起作用
然后,如果登录/pwd出错,我希望我能在索引页面上添加一点警告,我尝试在Twig中执行{if error},在模板中添加$error,但什么也没有出现
我希望有人能帮忙,这对我的英语很重要,很抱歉
谢谢因为您返回的是重定向响应在您的类中调用另一个方法不会有多大作用,您必须再次使用return关键字。如果您的表单通过验证,请这样尝试:
if ($formulaire->isValid()) {
$data = $formulaire->getData();
// notice the return here.
return $this->authentificationAction($data);
}
Symfony的食谱中有一章关于安全性和表单登录的内容非常好。读一读