使用Symfony通过API验证实体



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

如果我想把它弄脏,这很容易,但我想使用Validator。

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

现在我有一些类似的东西

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

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

1(设置实体约束:https://symfony.com/doc/current/validation.html#the-验证基础

2( 使用ValidatorInterfacehttps://symfony.com/doc/current/validation.html#using-验证器服务

例如:

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
}

BTW:我不明白api和符号形式之间的关系。

最新更新