gpt4 book ai didi

forms - FOSRestBundle 表单

转载 作者:行者123 更新时间:2023-12-04 13:20:02 25 4
gpt4 key购买 nike

我正在尝试构建 symfony2 rest api,但我正在为 FOSRestBundle 苦苦挣扎

起初我可以制作“@View()”注释,因为它总是会说我的模板丢失,无论我使用什么配置选项我都会得到同样的错误,然后在我的路由yml中我添加了“默认值:{ _format: json }”,突然它说工作正常。

v1:
resource: "@AppBundle/Controller/"
defaults: { _format: json }
type: annotation
prefix: /v1

但是现在我遇到了表单问题,我创建了一个表单类和一个服务并设置了简单的 Controller 方法:
/**
* Creates a new Order entity.
*
* @Rest\Post("/products", name="products_create")
* @Rest\View()
* @param Request $request
* @return Product|array
*/
public function createAction(Request $request)
{
$product = new Product();
$form = $this->createForm('product', $product);

$form->handleRequest($request);

if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($product);
$em->flush();

return $product;
}

return $form;
}

现在,如果表单在我的测试用例中无效,我希望得到类似的响应,这在文档中显示: http://symfony.com/doc/current/bundles/FOSRestBundle/2-the-view-layer.html#forms-and-views

但不是这样的:
{
"code": 400,
"message": "Validation Failed";
"errors": {
"children": {
"code": {
"errors": [
"This value should not be blank."
]
},
"name": {
"errors": [
"This value should not be blank."
]
},
"description": {
"errors": [
"This value should not be blank."
]
}
}
}
}

我得到:
{
"children": {
"code": [],
"name": [],
"description": []
}
}

这里发生了什么事?我的设置有问题还是我遗漏了什么?顺便说一句,我在我的实体中设置了表单验证

最佳答案

{
"children": {
"code": [],
"name": [],
"description": []
}
}

这意味着表单是有效的,并且验证中没有任何错误。所以,这是正确的回应,因为你说你的测试用例已经得到了有效的形式。

如果字段将在表单声明中定义为“必需”并且具有验证约束 NotBlank ( http://symfony.com/doc/current/reference/constraints/NotBlank.html ),则会显示来自下方的响应片段。
"errors": [
"This value should not be blank."
]

编辑:

在评论中讨论后: 用“提交”替换“handleRequest”有帮助。

关于forms - FOSRestBundle 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com