【问题标题】:Laravel - How To Access and Manipulate JSON Array ElementsLaravel - 如何访问和操作 JSON 数组元素
【发布时间】:2020-02-03 11:21:42
【问题描述】:

有人可以教我如何访问数据数组中的每个类别元素吗? PS:我使用 Postman 发布这个 JSON,并尝试在 laravel 项目控制器方法中对其进行操作。

但我不断收到此错误:

ErrorException: Trying to get property 'data' of non-object

我的路线没有问题,因为我已成功使用 get 和 post 请求进行其他简单过程。

我还使用带有 application/json 标头的 Content-Type 来使用 Postman 软件发送此 JSON。

我的控制器方法:

public function requestStore(Request $request) {

        //
}

JSON:

{
  "id": "126612213872902",
  "name": "Jack Daniel",
  "likes": {
    "data": [
      {
        "category": "Steakhouse",
        "id": "330668300343348"
      },
      {
        "category": "Steakhouse",
        "id": "793734850733472"
      },
      {
        "category": "Steakhouse",
        "id": "650634241797601"
      },
      {
        "category": "Steakhouse",
        "id": "146621545355340"
      },
      {
        "category": "Italian Restaurant",
        "id": "146805911480"
      },
      {
        "category": "Ice Cream Shop",
        "id": "545851225458015"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "24540959832"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "478890372318431"
      },
      {
        "category": "Fast Food Restaurant",
        "id": "78934590040"
      },
      {
        "category": "Korean Restaurant",
        "id": "553600018012159"
      },
      {
        "category": "Korean Restaurant",
        "id": "388180681558608"
      },
      {
        "category": "Chinese Restaurant",
        "id": "288066224573571"
      },
      {
        "category": "Chinese Restaurant",
        "id": "77730698813"
      },
      {
        "category": "Steakhouse",
        "id": "80555139083"
      },
      {
        "category": "Steakhouse",
        "id": "276973702580"
      },
      {
        "category": "Halal Restaurant",
        "id": "407606596237025"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "337074526415500"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "607366992933940"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "523902944321612"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "194113415406"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "177159752316413"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "705777492887089"
      },
      {
        "category": "Malaysian Restaurant",
        "id": "1545544055681553"
      },
      {
        "category": "Steakhouse",
        "id": "558487800860920"
      },
      {
        "category": "Steakhouse",
        "id": "129509727619"
      }
    ],
    "paging": {
      "cursors": {
        "before": "MzMwNjY4MzAwMzQzMzQ4",
        "after": "MTI5NTA5NzI3NjE5"
      }
    }
  }
}

【问题讨论】:

    标签: php json laravel laravel-5 controller


    【解决方案1】:

    假设您像这样通过 Postman 发布原始 json 不要忘记将类型设置为 JSON

    像访问数组一样访问数据

    Route::post('/test', function () {
        $data = request()->all();
        foreach ($data['likes']['data'] as $key => $value) {
            dd($value['category']);
        }
    });
    

    结果:

    希望对你有帮助

    【讨论】:

    • 如果它解决了您的问题,请考虑接受答案
    • 老兄,我可以通过循环将每个数据插入db吗??
    • 当然,只需调用模型并将数据传递给 create 方法,但这是一个不同的问题
    • @CaddyDDZ 你能邀请我到房间里吗?或者我可以在某个地方联系你吗?我想问那个特定的问题:))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    相关资源
    最近更新 更多