我无法尝试从symfony 2中的简单HTML表单中获取POST值。这就是我的控制器方法所做的:
/**
* @Route("/process-login/", name="process login")
* @Method("POST")
*/
public function processLoginAction()
{
$name = $this->request->request->get('username');
$password = $this->request->request->get('password');
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT u.id FROM AppBundle:Admin u WHERE u.name = :name AND u.password = :password')
->setParameter('name', $name)
->setParameter('password', $password);
$result = $query->getOneOrNullResult();
if($result < 1)
{
$this->session->getFlashBag()->add('error', 'Incorrect login details');
$action = $this->redirectToRoute('login');
}
else
{
$this->session->start();
$this->session->set('admin', $name);
$action = $this->redirectToRoute('homepage');
}
return $action;
}
每当我处理表单时,我都会收到错误消息 找不到“POST / process-login”的路由。
哪里可能是问题? 附:适用于GET
答案 0 :(得分:1)
这可能是因为最后的斜线。 从路径末尾删除/。
/**
* @Route("/process-login", name="process login")
* @Method("POST")
*/
应该是这样的。
也运行
php app/console router:debug
查看路由是否被Symfony2识别。