未知密钥"数据"注释" @FOS \ RestBundle \ Controller \ Annotations \ View"

时间:2017-07-31 10:56:31

标签: php symfony fosrestbundle

我正在使用react app作为前端创建简单的symfony api。它应该创建用户(仅用户名)和产品(名称和价格)。当我创建新用户时,它很好。但是,如果我决定以相同的方式创建新产品,则会产生错误

  

未知密钥"数据"注释" @FOS \ RestBundle \ Controller \ Annotations \ View"

以下是ProductController

中的代码
/**
 * Creates a new product entity.
 * @Rest\Post("/post")
 */
function newAction(Request $request ) {
    $product = new Product();
    $body = $request->getContent();
    $body = str_replace('"', '"', $body);
    $body = json_decode($body, true);
    $productName = $body['name'];
    $productPrice = $body['price'];
    $product->setName($productName);
    $product->setPrice($productPrice);
    $em = $this->getDoctrine()->getManager();
    $em->persist($product);
    $em->flush();
    $data['data'] = $product;
    return new View($data,Response::HTTP_CREATED);
}

如果我对用户使用相同的逻辑和响应,它可以正常工作。这是UserController

中的代码
 /**
 * Creates a new user entity.
 * @Rest\Post("/post")
 */
function newAction(Request $request ) {
    $user = new User();
    $body = $request->getContent();
    $body = str_replace('"', '"', $body);
    $body = json_decode($body, true);
    $username = $body['username'];
    $user->setUsername($username);
    $em = $this->getDoctrine()->getManager();
    $em->persist($user);
    $em->flush();
    $data['data'] = $user;
    return new View($data,Response::HTTP_CREATED);
}

现在我的问题 - 创建新用户就好了。创建新的产品中断。代码尽可能相似。任何想法为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

[已解决] 这是我所犯过的最愚蠢的错误之一。在使用View类时,我已按Alt + Enter自动使用它。但是,似乎在UserController中它使用了正确的View类,而在ProductController中它使用了其他内容。