【问题标题】:Symfony2 Validation using Doctrine2 Annotations使用 Doctrine2 注释的 Symfony2 验证
【发布时间】:2015-10-01 14:32:05
【问题描述】:

我有以下 Doctrine 实体,我想将其限制也用于验证。

/**
 * @var string
 *
 * @ORM\Column(type="string", length=40)
 * @Assert\Valid
 */
private $birthName;

我使用以下验证,它适用于 symfony 特定的注释但不适用于 Doctrine 设置限制!

// Validate data
$validator = $this->get('validator');
$errors = $validator->validate($user);

if (count($errors) > 0) {
    $response = new JsonResponse(array(
        'error' => 'User could not be created.' . PHP_EOL . (string)$errors
    ));
    $response->setStatusCode(400);

    return $response;
}

如何让 symfony 验证器使用原则限制作为设置?

现状:
我阅读了 [1] 和 [2] 但到目前为止我没有使用表单,因为我有一个返回 JSON 的控制器。如果您知道如何使用表单进行这项工作,也会有很大帮助!

【问题讨论】:

    标签: php validation symfony doctrine-orm symfony-validator


    【解决方案1】:

    教义映射与验证无关。 代码@ORM\Column(type="string", length=40) 仅将属性映射到数据库字段,并将数据库字段的最大长度设置为等于 40 个字符,如果您要使用教义创建架构。

    但因此不参与验证过程的任何部分。 因此,您需要通过

    之类的方式设置断言规则
       /**
       * @Assert\Length(max = 40)
       */
    

    【讨论】:

    • 有什么东西可以从教义注释中“生成”断言吗?
    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多