0

我在使用 Symfony 制作的简单登录表单时遇到问题。这是控制器代码:

public function loginAction(Request $request){
        $user = new User();
        $form = $this->createFormBuilder($user)
        ->add('userID', 'text', array('label' => 'UserID'))
        ->add('password', 'password', array('label' => 'Password'))
        ->add('ricorda', 'checkbox', array(
                "required" => false,
                "mapped" => false
        ))
        ->add('login', 'submit')->getForm();

        $form->handleRequest($request);
        Debug::dump($_POST$user);
        /*if($form->isValid()){

        }*/
        return $this->render('TDDumbFEBundle:Default:auth.html.twig', array('form' => $form->createView()));
    }

这里是实体类用户,表单数据应存储在其中,然后进行验证:

class User{

    private $userID;

    private $password;

    public function getUserID(){
        return $this->userID;
    }

    public function getPassword(){
        return $this->password;
    }

    public function setUserID($userID){
        $this->$userID = $userID;
    }

    public function setPassword($password){
        $this->$password = $password;
    }
}

最后,约束:

properties:
  userID:
    - NotBlank: ~
  password:
    - NotBlank: ~

嗯,不知道为什么,但是无论我在用户 ID 和密码输入字段中输入什么,我总是得到一个

This value should not be blank.

信息。如果我Debug::dump()在用户对象上使用该方法,我会发现所有属性都是空的。

有任何想法吗?

4

1 回答 1

1

简单的错字。

public function setUserID($userID){
    $this->$userID = $userID;          // *** Change to $this->userID = $userID
}

public function setPassword($password){
    $this->$password = $password;      // *** Change to $this->password = $password;
}
于 2013-08-31T17:51:31.303 回答