首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2 - FOSRestBundle -自定义序列化程序或FOSRestBundle输出

Symfony2 - FOSRestBundle -自定义序列化程序或FOSRestBundle输出
EN

Stack Overflow用户
提问于 2015-10-09 07:39:25
回答 1查看 2.2K关注 0票数 1

如何使用FOSRestBundle创建自定义JSON输出?

代码已经有一些方法,用于将实体和分页的结果集转换为JSON。以及生成唯一的URL来查看/编辑输出的JSON中的实体。

如何将它们与FOSRestBundle一起使用?

将条形图转换为JSON输出的自定义方法示例:

代码语言:javascript
复制
    $json = $this->getJsonFactory('Bar')
        ->dataTableFormat($data);
    return $this->jsonResponse($json);    

如何使用此自定义方法作为视图中JSON的输出?

代码语言:javascript
复制
    $data = $this->getDoctrine()->getRepository('Foo:Bar')
        ->findAll();
    $view = $this->view($data, 200)
            ->setTemplate("Foo:Bar:index.html.twig")
            ->setTemplateVar('bars')
    ;

如果有帮助的话,JMSSerializerBundle是可用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-09 11:39:53

使用自定义处理程序是可能的,请参阅docs:http://symfony.com/doc/master/bundles/FOSRestBundle/2-the-view-layer.html#custom-handler

工作实例:

代码语言:javascript
复制
    $handler = $this->get('fos_rest.view_handler');
    if (!$handler->isFormatTemplating($view->getFormat())) {
        $templatingHandler = function ($handler, $view, $request) {
            $data = $this->getJsonFactory('Bar')
                 ->dataTableFormat($$view->getData());
            $view->setData($data);
            return $handler->createResponse($view, $request, 'json');
        };
        $handler->registerHandler('json', $templatingHandler);
    }

$templatingHandler方法处理调用JsonFactory和设置json输出的数据格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33032601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档