gpt4 book ai didi

php - 带有 keyBy 的 Laravel 响应返回对象和数组

转载 作者:行者123 更新时间:2023-12-03 11:22:56 27 4
gpt4 key购买 nike

我正在开发一个项目,使用 Laravel 设置后端 RESTful API,使用 angularJS 设置前端。
我从我的 Controller @index 返回简单 all()->toArray()像这样:

一种。

return Response::json([
'val' => myModel::all()->toArray()
]);

然后使用 angular 对象,我可以做 $scope.myArray=response.val 之类的事情并最终采取行动,如 $scope.myArrayBoundToATable.push(newelement) .如果通过其 id 键控生成的 JSON 会更好所以我把它改成:

B.

return Response::json([
'res' => myModel::all()->keyBy('id')->toArray()
]);

但现在所有的功能都像 .splice.push引发错误。通过登录到控制台,我可以看到:
all()->toArray() : [Object]一切正常。
keyBy('id')->toArray() : Object {1: Object}
我必须在 $scope.myVar 上重写 CRUD 操作作为一个 JS 对象,而不是一个数组。

我可以使用方法 A. 并迭代每个元素来搜索 ID,但方法 B. 允许我以更优雅的方式访问元素: $scope.myVar(ID) .

最佳答案

正如@lukasgieter 指出的那样,这是一个关联数组。
为了便于前端使用,只需使用 array_values 将关联数组转换为常规数组即可。

这是我如何处理它。

Response::json(['val' => array_values(myModel::all())]);

关于php - 带有 keyBy 的 Laravel 响应返回对象和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506185/

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