【问题标题】:laravel 5.6 keep array custom key in resource responselaravel 5.6 在资源响应中保留数组自定义键
【发布时间】:2018-10-14 11:33:21
【问题描述】:

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

我使用 Resource::withoutWrapping();

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

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

如何让api资源支持自定义key?

【问题讨论】:

    标签: php laravel api


    【解决方案1】:

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

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

    那么它应该将它作为一个对象传递。

    【讨论】:

      【解决方案2】:

      JsonResource 应用它的filter 方法时,数组键被删除。似乎没有办法保留这些密钥。

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

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

      【讨论】:

        猜你喜欢
        • 2019-01-25
        • 2019-04-11
        • 1970-01-01
        • 2019-04-25
        • 2015-03-11
        • 2022-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多