我需要你的帮助,我试图使用nelmio bundle插入图像,但它给了我这个错误参数标签值''违反约束(类型为\"数组的预期参数或者Traversable \",\"字符串\"给出)"
我的控制器如下
/**
* @ApiDoc(description="Uploads photo with tags.")
*
* @Rest\FileParam(name="image", image=true, description="Image to upload.")
* @Rest\RequestParam(name="tags", requirements=".+", nullable=false, map=true, description="Tags that associates photo.")
* @Rest\View()
*/
public function postPhotoAction(ParamFetcher $paramFetcher, array $tags)
{
$em = $this->getDoctrine()->getManager();
$photo = new Photo();
$form = $this->createForm(new PhotoType, $photo);
if ($tags) {
$tags = $em->getRepository('TestTaskTagsBundle:Tag')->findOrCreateByTitles($tags);
}
$form->submit($paramFetcher->all());
if (!$form->isValid()) {
return $form->getErrors();
}
foreach ($tags as $tag) {
$photo->addTag($tag);
}
$em->persist($photo);
$em->flush();
return array('photo' => $photo);
}
如何解决这个问题
答案 0 :(得分:0)
错误来自您自己的要求,您需要install
和nullable=false
,但不传递任何值(即map=true
)。
在value "" violated a constraint
:
nullable
属性设置为false
RequestParam
或为您的* @Rest\RequestParam(name="tags", requirements=".+", nullable=true, map=true, description="Tags that associates photo.")
参数指定值。
PS:问题是关于FOSRestBundle,而不是nelmio / api-doc-bundle,这里只有 来记录你的api。
修改强>
要在nelmio沙箱中插入数组,请将其用作键值:
tags
对要传递的每个标记执行此操作(新的键值对)。