【问题标题】:Laravel response json useless arrayLaravel 响应 json 无用数组
【发布时间】:2017-02-21 08:17:41
【问题描述】:

我正在使用 Laravel 开发 API,但我的 json 响应有问题,例如我有一个函数:

    $company = Company::select('name')
        ->inRandomOrder()
        ->limit(1)
        ->get();

    return response()->json([
        'company' => $company,
    ]);

当我调用我的函数时,我得到了这个:

{
    "company": [
        {
            "name": "Company Number 1"
        }
    ]
}

为什么我在 company 后面有一个数组? "company": [ 有没有办法直接返回 $company 之前没有对象(在我的示例中命名为公司?)

谢谢!

【问题讨论】:

  • 尝试first方法而不是get
  • 嗯,好主意:p

标签: php json laravel laravel-5.3


【解决方案1】:

将您的 ->get() 更改为 ->first(),以便返回第一个模型而不是模型集合。

$company = Company::select('name')
    ->inRandomOrder()
    ->first();

return response()->json([
    'company' => $company,
]);

->limit(1) 也可能是不必要的,因为首先已经这样做了。

【讨论】:

    【解决方案2】:

    ->get() 返回Collection,而first() 返回第一个对象或集合。

    因此不再需要limit(1),Laravel的默认动作是响应为JSON。

    因此,您可以简单地

    return [
      'company' => Company::select('name')->inRandomOrder()->first()
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2017-09-23
      • 2014-04-16
      • 1970-01-01
      • 2021-06-05
      • 2015-10-30
      • 2014-11-11
      • 2015-05-17
      相关资源
      最近更新 更多