Symfony表单 - 无法收集POST值

时间:2015-03-16 10:08:09

标签: php symfony

我无法尝试从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

1 个答案:

答案 0 :(得分:1)

这可能是因为最后的斜线。 从路径末尾删除/。

/**
 * @Route("/process-login", name="process login")
 * @Method("POST")
 */

应该是这样的。

也运行

php app/console router:debug 

查看路由是否被Symfony2识别。