0

我在自己的应用程序(不是 Symfony)中使用 Symfony 验证。我希望它返回违规行为,因为我没有填充 Id 属性:

$user = new User();
$user->setId('');
//...

$validator = \Symfony\Component\Validator\Validation::createValidator();
$errors = $validator->validate($user);
var_dump(count($errors)); exit; // outputs: 0

但是,验证不会返回任何违规。

这是我的带有约束注释的用户类:

use Symfony\Component\Validator\Constraints as Assert;

class User {

    /**
     * @Assert\NotBlank
     */
    private $id;

    //...

    public function getId(): string {
        return $this->id;
    }

    public function setId(string $id): void {
        $this->id = $id;
    }

    //...

我哪里错了?根据文档,空白字符串应该触发违反此约束 - https://symfony.com/doc/current/reference/constraints/NotBlank.html

4

1 回答 1

0

如果您使用验证,则不需要注释。尝试这个 :

$validator = Validation::createValidator();
$violations = $validator->validate($user->getId, [
    new NotBlank(),
]);
于 2020-02-19T16:06:11.083 回答