休息框架中的 JSON 视图


JSON view in Recess Framework

我正在尝试使用Recess创建一个api,我对它的JsonView有一个问题。目前,如果我对/users/1 执行 GET 请求(该请求路由到一个函数,该函数获取 id 为 1 的用户的所有详细信息并使用 JSON 响应),我会得到以下内容:

{"users":{"id":"1","username":null,"password":null,"datejoined":false}}

怎样才能做到这一点,以便我得到以下内容:

{"id":"1","username":null,"password":null,"datejoined":false}

也就是说,我不希望所有细节都包含在"users":{}内。

默认情况下,Recess 的 JsonView 使用控制器的属性进行响应。因此,您的$users属性将直接编码为 JSON。

您可以通过返回自定义响应对象来覆盖此设置:

return new OkResponse($this->request, (array)$this->users);

不确定具体的休息时间,但是如果您将 JsonView 方法/函数与输入参数一起使用 (array) $result ,那么将$result更改为 $result['users'] 可能会给您正在寻找的答案。

例如使用纯 PHP:

first object: echo json_encode($result);
second object: echo json_encode($result['users']);