首页 > 解决方案 > Laravel - 本地主机返回数组但服务器返回对象

问题描述

我在 localhost + 服务器中运行相同的代码,但 Laravel 的响应不同。

在 localhost 中,我得到一个array. 在服务器中,我得到一个object.

我不知道为什么,因为这永远不会发生。

我正在使用Laravel 5.7.x和默认response()->json(...)方法。


代码

本地主机(Windows 10,php 7.3.14)

  "departments": [
    {
      "name": "Sem departamento",
      "vacancies": [
        {
          "id": 264,
          "title": "OFICIAL DE MANUTENÇÃO PREDIAL (REFRIGERAÇÃO)",
          "pcd": 0,
          "internal_code": null,
          "company_department_id": 0,
          "exam_filename": null,

服务器 (DigitalOcean) (Ubuntu 18.04, PHP 7.3.11)

  "departments": {
    "0": {
      "name": "Sem departamento",
      "vacancies": [
        {
          "id": 74,
          "title": "Técnico de Sistemas Júnior",
          "pcd": 0,
          "internal_code": null,
          "company_department_id": 0,
          "exam_filename": null,

脚本

        $departments[0] = [
            'name' => 'Sem departamento',
            'vacancies' => []
        ];
        foreach ($vacancies as $v) {
            if (empty($v->companyDepartment)) {
                $departments[0]['vacancies'][] = $v;
            } elseif (empty($departments[$v->companyDepartment->id])) {
                $departments[$v->companyDepartment->id] = [
                    'name' => $v->companyDepartment->name,
                    'vacancies' => [$v]
                ];
            } else {
                $departments[$v->companyDepartment->id]['vacancies'][] = $v;
            }
        }

        return response()->json(compact('departments'));

标签: phpjsonlaravel

解决方案


推荐阅读