1

我使用 slim 并希望 ro 实现 symfony 验证方式。为此,我安装symfony/validator doctrine/annotations并在之后创建带有断言注释的类,但在验证后我没有任何违规行为。当我尝试addMethodMapping与自定义函数一起使用时,我添加addPropertyConstraint到的地方metadata,我违反了,每个人都在我的班级工作

use Symfony\Component\Validator\Constraints as Assert;

class Company
{
/**
 * @var string
 * @Assert\Length(
 *      min = 5,
 *      max = 50
 * )
 */
private $name;

/**
 * @var string
 */
private $company_country;

/**
 * @var string
 * @Assert\NotBlank()
 */
private $company_org_nr;

并验证逻辑,其中comapnyObj具有空属性的对象

$validator = Validation::createValidator();
$constraintViolationList = $validator->validate($comapnyObj);

并且有错误[Semantical Error] The annotation "@Symfony\Component\Validator\Constraints\Length" in property CDB\Collection\Company::$name does not exist, or could not be auto-loaded.

如何更正使用注释进行 symfony 验证?

4

1 回答 1

0

我发现只是我没有仔细阅读文档

/** @var ClassLoader $loader */
$loader = require __DIR__.'/../vendor/autoload.php';

AnnotationRegistry::registerLoader([$loader, 'loadClass']);
于 2019-10-23T12:45:20.593 回答