Laravel 响应 json 无用数组

Laravel response json useless array

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

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

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

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

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

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

谢谢!

将您的 ->get() 更改为 ->first(),这样它 returns 第一个模型而不是模型集合。

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

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

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

->get() returns Collectionfirst() returns 第一个对象或集合。

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

因此,您只需

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