我正在使用Laravel开发一个API,我的json响应有问题,例如我有一个函数:
$company = Company::select('name')
->inRandomOrder()
->limit(1)
->get();
return response()->json([
'company' => $company,
]);
当我调用我的函数时,我得到了这个:
{
"company": [
{
"name": "Company Number 1"
}
]
}
为什么我公司之后有阵列? "company": [
有没有办法在没有对象之前直接返回$company
(在我的示例中命名为公司?)
谢谢!
答案 0 :(得分:6)
将您的->get()
更改为->first()
,以便返回第一个模型而不是模型集合。
$company = Company::select('name')
->inRandomOrder()
->first();
return response()->json([
'company' => $company,
]);
也可能不需要->limit(1)
,因为首先已经这样做了。
答案 1 :(得分:1)
->get()
返回Collection,而first()
返回第一个对象或集合。
因此,不再需要limit(1),Laravel的默认操作是以JSON响应。
因此,您可以简单地
return [
'company' => Company::select('name')->inRandomOrder()->first()
];