Symfony的3.1.7 + FOSRestBundle最新版本組註釋不會工作
<?php
namespace PM\ApiBundle\Controller;
...
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\View\View;
class ArticlesController extends FOSRestController
{
/**
* @ApiDoc(
* section="articles",
* resource=true,
* description="Get articles published"
*)
* @Rest\View(serializerGroups={"article"})
* @Rest\Get("/articles")
*/
public function getArticlesAction(Request $request)
{
$articles = $this->getDoctrine()
->getManager()
->getRepository('PMPlatformBundle:Article')
->findAllDateDesc();
/* @var $articles Article[] */
return $articles;
}
然後在我的文章實體添加此註釋@Groups({「文章」})與使用權聲明。
白衣默認的序列獲得:
[
[],
[]
]
白衣JMS串行器(束)我得到:
{
"0": {},
"1": {}
}
(我在DB的兩篇文章) 看起來像 「文章」 組不被認可。當我使用缺省的序列化程序而沒有這個註釋時,我得到一個循環錯誤。
怎麼了?
[編輯]相同的行爲與
/**
* @ApiDoc(
* section="articles",
* resource=true,
* description="Get articles published"
*)
* @Rest\View()
* @Rest\Get("/articles")
*/
public function getArticlesAction(Request $request)
{
$context = new Context();
$context->addGroup('article');
$articles = $this->getDoctrine()
->getManager()
->getRepository('PMPlatformBundle:Article')
->findAllDateDesc();
/* @var $articles Article[] */
$view = $this->view($articles, 200);
$view->setContext($context);
return $view;
}
的響應仍然是空的。
請問您可以告訴我們您的findAllDateDesc()方法返回的內容(var_dump或print_r)/您可以粘貼您的實體或序列器配置的代碼嗎? –
我的方法findAllDateDesc()工作正常(和debbuging,上帝!不使用var_dump或print_r,personnaly我使用xdebug ..),我的實體在這裏不是問題,序列化程序也是。我回答了我的問題,我使用JMS序列化程序修復了這個問題。任何方式感謝您的幫助! –