laravel 5.6在资源响应中保留数组自定义键

时间:2018-05-04 04:23:47

标签: php laravel api

来自laravel文档的

: withoutWrapping方法仅影响最外层响应,并且不会删除您手动添加到自己的资源集合中的数据键。

我使用Resource :: withoutWrapping();

`"status": "success"
    "entry": {
        "access_control": [
            1 => {
                "allowed": [
                    0 => "015"
                    1 => "002"
                    2 => "011"
                 ]
}`

在laravel 5.6中我无法定义自定义数组键,access_control键下的键变为0。'

如何制作api资源支持自定义密钥?

2 个答案:

答案 0 :(得分:2)

当使用JsonResourcefilter方法时,

数组键将被删除。似乎没有办法保留这些密钥。

对于我的特定用例,我能够重构数组值以使其包含“ id”-在您的情况下:

"access_control": [
    {
        "id": 1,
        "allowed": [
            "015"
            "002"
            "011"
        ]
    }
]

答案 1 :(得分:0)

另一种解决方法是使用stdClass();

$array = new \stdClass();
$array->access_control = ['somedata'];

然后将其作为对象传递。

相关问题