2016-12-03 2 views
1

Я использую ОРМ взять Дат из БД:Как преобразовать данные из подзапроса в формате Json?

$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

Вы пытались так: return $ products-> toJson(); ? –

+0

Может ли любезно предоставить структуру столбиков ур? – Borna

+0

Для какого 'toJson()' если я использую 'response() -> json()' – Bedouin

ответ

0

При взгляде на ваши данные json кажется, что функция categories возвращает объект модели, а не сбор.

Это может быть вызвано неправильным отношением в модели product. Таким образом, правильное отношение должно быть таким:

public function categories() 
{ 
    return $this->hasMany('App\Category'); 
} 
Смежные вопросы