Symfony 2/3 REST API验证(无表单)

dy1byipe  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(152)

假设我有一个Cat实体,其属性为$name(字符串)。
我用参数[name = 123](一个整数)发送到url POST /cats。
我如何在没有表单的情况下验证请求中的数据?或者REST API与表单验证一起使用是否正常?我找不到有关没有表单的验证的信息。
我可以使用没有表单的Validation组件,但也许有比$this->get('validator')->validate('data from request')更好的方法。

vecaoik1

vecaoik11#

我建议仍然使用Form来处理验证,您可以手动模拟提交:http://symfony.com/doc/current/form/direct_submit.html#calling-form-submit-manually
一个非常简单的例子如下所示。

$formFactory = new Symfony\Component\Form\FormFactory();

//build your "post" data from your submitted content via api
$data = json_decode($request->getContent(), TRUE);

//build your Form and Entity objects.
$formType = new Path\To\CatForm(); //for example
$entity = new Path\To\CatEntity();

$parameters = array();
$method = 'POST';

$form = $formFactory->create($formType, $entity, ['method' => $method]);
$form->submit($parameters, ($method == 'PATCH' ? false : true));

if ($form->isValid()) {
    //do stuff
}

相关问题