gpt4 book ai didi

symfony - 内容长度: 0 in a json response Symfony2

转载 作者:行者123 更新时间:2023-12-02 16:45:07 24 4
gpt4 key购买 nike

我总是得到一个空白,我的 Controller 中有一个像这样的操作

/**
* @Route("/check/{key}.json", defaults={"_format"="json"})
* @Template()
*/
public function processAction($upload_key)
{
/* make thing */
return array('data' => $process_data);
}

在我的 process.json.twig 文件中,我有

{% set res = { 'data': data } %}
{{ res | json_enconde | raw }}

其他形式

{{ { 'data': data } | json_enconde | raw }}

我也尝试过这个:

{{ 'hello' | json_encode | raw }}

在 Chrome 中我得到这样的响应:

Connection:close
Content-Length:0
Content-Type:application/json
Date:Mon, 19 Dec 2011 05:13:17 GMT
Server:Apache/2.2.20 (Ubuntu)
X-Powered-By:PHP/5.3.6-13ubuntu3.3

并且从服务器上没有得到任何东西,我无法解决这个问题

最佳答案

有两种方法可以实现此目的,具体取决于您喜欢哪种以及您的操作是否应该支持多种 _format 类型。

选项 A - 仅返回 JSON 的操作

您可以完全绕过模板。

在 Controller 中删除@Template注释,并返回新的Response(json_encode($process_data));

选项 B - 支持不同格式的操作,或者您只想在模板中呈现 JSON

通过呈现不同格式的操作,我引用具有路线的操作,如下所示:

@Route("/check/{key}.{_format}", defaults={"_format"="json"}
@Template

虽然这个问题中的 Controller 走的是“只支持 JSON 但你想在模板中呈现它的操作”的路线。

假设 Controller 的 processAction 按照问题要求返回 return array('data' => $process_data);,然后在名为 的模板中将其呈现为 JSON process.json.twig 应按如下方式完成 {{ data|json_encode }},无需预处理 data 或将其转换为另一个数组或模板内类似的内容。

关于symfony - 内容长度: 0 in a json response Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8557412/

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