我在尝试从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/进程登录"的路由。
问题可能出在哪里?附言与GET合作
可能是因为最后的斜杠。从路由末尾删除/。
/**
* @Route("/process-login", name="process login")
* @Method("POST")
*/
应该是这样。
还运行
php app/console router:debug
看看路线是否被Symfony2识别。