我正在开发一个项目,使用laravel设置后端RESTful API,使用angularJS设置前端。
我从我的控制器@index返回简单的all()->toArray()
,如下所示:
一个。
return Response::json([
'val' => myModel::all()->toArray()]);
然后使用角度中的该对象,我可以执行$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)
。
答案 0 :(得分:1)
这是@lukasgieter指出的关联数组。
为了便于在前端使用,只需使用array_values
这是我的处理方式。
Response::json(['val' => array_values(myModel::all())]);