【问题标题】:Validate an Entity through an API with Symfony使用 Symfony 通过 API 验证实体
【发布时间】:2020-04-03 13:59:09
【问题描述】:

我有一个包含简单字段的实体。不幸的是,我不能说 Symfony 方面的验证约束是什么。我必须在 API 路由上发布这些信息。如果它没有返回错误消息,我可以验证实体,如果没有,我必须向用户显示错误消息。

如果我想弄脏,这很容易,但我想使用验证器。

当我执行$form->isValid 时,我希望完成此 API 调用并将错误消息直接添加到表单中。

目前我有类似的东西

if ($form->isSubmitted() && $form->isValid()) {
    if ($entityModelManager->validate($form)) {
        //the entity is valid here
    }
}

但正如我所说,我认为这很脏,我希望有更好的代码。

【问题讨论】:

    标签: symfony symfony4 symfony-forms symfony-validator


    【解决方案1】:

    1) 设置实体约束: https://symfony.com/doc/current/validation.html#the-basics-of-validation

    2) 使用验证器接口 https://symfony.com/doc/current/validation.html#using-the-validator-service

    例如:

    public function create(ValidatorInterface $validator)
    {
        $post = new Post();
        // ... 
        $errors = $validator->validate($post);
        if (count($errors) > 0) {
            foreach($errors as $error) {
                // ... write error to API errors output
            }
        }
    
        // .. save entity & return success
    }
    

    顺便说一句:我不明白 api 和 symfony 表单之间的关系。

    【讨论】:

    • 感谢您的回答,但是……这并不能解决我的问题。我在 Symfony 方面没有约束,所以我无法在实体中设置约束。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多