【问题标题】:Symfony 2/3 REST API Validation without formSymfony 2/3 REST API 验证无表单
【发布时间】:2017-05-30 17:32:23
【问题描述】:

例如,我有属性为 $name(string) 的实体 Cat。

我使用参数 [name = 123] 发送到 url POST /cats

如何在没有表单的情况下验证来自请求的数据?还是带有表单验证的 REST API 是正常的?我找不到有关没有表单的验证的信息。我可以使用没有表单的 Validation 组件,但可能存在一些可以为我提供比 $this->get('validator')->validate('data from request') 更好的方法的包。

谢谢。

【问题讨论】:

标签: php symfony


【解决方案1】:

我建议仍然使用表单来处理验证,您可以手动模拟提交: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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多