我使用ORM从DB获取数据:
$products = Products::with("categories")->get();
当我做JSON响应时:
return response()->json(["producst" => $products]);
所以,我收到以下回复:
{
"products": {
"total": 727,
"per_page": "20",
"current_page": 1,
"last_page": 37,
"next_page_url": "",
"prev_page_url": null,
"from": 1,
"to": 20,
"data": [
{
"id": 782,
"price": "1.9",
"object_id": "47",
"available": "1",
"categories": {
"names": {
"id": 14,
"parent_id": "0",
"active": "1",
"title": "Stron",
"description": ""
}
}
}
问题在于,我在这里得到错误的格式JSON:
"categories": {...}
它应该是:"categories": []
因为里面可以是一些元素。
我怎样才能在Laravel中这样做?
答案 0 :(得分:0)
通过查看您的json数据,似乎categories
函数返回的是模型对象,而不是集合。
这可能是由product
模型中的错误关系引起的。所以正确的关系应该是:
public function categories()
{
return $this->hasMany('App\Category');
}