【发布时间】:2020-05-27 05:22:29
【问题描述】:
我有一个数组,如示例所示。使用我编写的代码,我得到了类似于 Output1 的输出。
问题:我请求的服务与我自己的应用程序不同。答案是一个数组,它包含 id 信息。权限控制有permission()。权限函数将用户权限返回为 true 和 false。但是我写不出正确的语法,因为我记不起这个函数。当我使用自己的代码时,我可以像 output1 一样拉取有权限的用户。但我希望分页信息保留在数组中。如输出 2。我应该采用什么方法?
这个数组是一个例子。我只是试图解释我自己的问题。
我的代码=>(Laravel 5.8)
$response = ….get(url)………
$list = $response->getBody()[‘content’];
$collection = collect($list);
$filtered = $collection->filter(function ($item) [
return auth()->user->permission($item['id'])
]);
Return [‘content’ => $filtered];
原始响应:
[
"paginate"=>
[
"page"=> 5,
"per_page"=> 20,
"page_count"=> 20,
"total_count"=> 521,
"Links"=> [
["self"=> "/products?page=5&per_page=20"],
["first"=> "/products?page=0&per_page=20"],
]
],
"content"=> [
[
"id"=> 1,
"name"=> "Widget #1",
],
[
"id"=> 2,
"name"=> "Widget #2",
],
[
"id"=> 3,
"name"=> "Widget #3",
]
]
]
输出1:
[
"content"=>
[
"id"=> 1,
"name"=> "Widget #1",
],
----------------------> Authorized users(id= 1, 3) here, but no pagination.
[
"id"=> 3,
"name"=> "Widget #3",
]
]
预期输出:
[
"paginate"=>
[
"page"=> 5,
"per_page"=> 20,
"page_count"=> 20,
"total_count"=> 521,
"Links"=> [
["self"=> "/products?page=5&per_page=20"],
["first"=> "/products?page=0&per_page=20"],
]
],
"content"=> [
[
"id"=> 1,
"name"=> "Widget #1",
"uri"=> "/products/1"
],
[
"id"=> 3,
"name"=> "Widget #3",
"uri"=> "/products/3"
]
]
]
【问题讨论】:
-
也许我遗漏了什么,但“示例”和“输出 2”在我看来是一样的(减去后者中 id 为 2 的记录)
-
@patrickQ 是的,你是对的,我只想在不破坏基本 json 结构的情况下删除 id 2。我丢失了 Output1 中的所有分页信息。删除 id 2 后,我希望 json 保留在 output2 中
-
请包含您在问题正文中使用的实际代码。
-
另外,您的示例 JSON 实际上不是有效的 JSON。请向我们提供一些可用的东西,以及您的代码使用的 JSON 的真实表示。
-
@PatrickQ 我无法共享真实的 Json 数据,因为我现在没有访问权限。我添加了我在 Laravel 中使用的代码。用户权限返回我的权限()函数为真和假。我想删除未经授权的。