symfony 验证不起作用
symfony validation doesn't work
我想我缺少了什么。
我有一个通过 yml
文件验证的用户实体,但每次我向路由发送 post 请求时,它似乎都没有收到我的请求。我的意思是路由工作正常,但我不断收到密码和用户名 不应为空 的错误消息(由于我设置的限制)。所以它似乎没有让我的请求针对实体进行验证。
我确保在我的配置中触发了这个设置:
validation: { enabled: true, enable_annotations: true }
这是我的 routing.yml
:
user_login_homepage:
path: /check
defaults: { _controller: UserLoginBundle:Login:checkCredentials }
methods: [POST]
这是我的validation.yml
User\UserBundle\Entity\User:
properties:
username:
- NotBlank: ~
password:
- NotBlank: ~
这是我的控制器 (LoginController.php
)
public function checkCredentialsAction(Request $request)
{
$recursiveValidator = $this->get('validator');
$user = new User();
$errors = $recursiveValidator->validate($user);
if (count($errors) > 0) {
$errorsString = (string) $errors;
return new Response($errorsString);
}
return new Response('Yuppy');
}
我刚刚尝试按照说明进行操作,但无法正常工作 :(
我错过了什么吗?
您正在创建一个空用户,所以它更正了错误,试试这个(我想象用户名和密码被传递到 POST 数据中对吗?):
$user = new User();
$postData = $request->request->all();
$user->setUsername($postData['username'];
$user->setPassword($postData['password'];
$errors = $recursiveValidator->validate($user);
我想我缺少了什么。
我有一个通过 yml
文件验证的用户实体,但每次我向路由发送 post 请求时,它似乎都没有收到我的请求。我的意思是路由工作正常,但我不断收到密码和用户名 不应为空 的错误消息(由于我设置的限制)。所以它似乎没有让我的请求针对实体进行验证。
我确保在我的配置中触发了这个设置:
validation: { enabled: true, enable_annotations: true }
这是我的 routing.yml
:
user_login_homepage:
path: /check
defaults: { _controller: UserLoginBundle:Login:checkCredentials }
methods: [POST]
这是我的validation.yml
User\UserBundle\Entity\User:
properties:
username:
- NotBlank: ~
password:
- NotBlank: ~
这是我的控制器 (LoginController.php
)
public function checkCredentialsAction(Request $request)
{
$recursiveValidator = $this->get('validator');
$user = new User();
$errors = $recursiveValidator->validate($user);
if (count($errors) > 0) {
$errorsString = (string) $errors;
return new Response($errorsString);
}
return new Response('Yuppy');
}
我刚刚尝试按照说明进行操作,但无法正常工作 :( 我错过了什么吗?
您正在创建一个空用户,所以它更正了错误,试试这个(我想象用户名和密码被传递到 POST 数据中对吗?):
$user = new User();
$postData = $request->request->all();
$user->setUsername($postData['username'];
$user->setPassword($postData['password'];
$errors = $recursiveValidator->validate($user);