2016-03-01 86 views
0

我有這樣的代碼,是relatioship它自己的表:Laravel 5的Json與關係

類別型號

class Cateogry extends Model { 
    public function subCategory(){ 
     return $this->hasMany('\App\SubCategory'); 
    } 
} 

子類別型號

<?php 
class SubCategory extends Model { 
    public function Category(){ 
     return $this->belongsTo('\App\Category'); 
    } 
} 

在你的控制器

SomeController

<?php 

class SomeController extends Controller { 
    public function index(){ 
     return Category::with('subCategory')->get() 
    } 
} 

當我做返回Category :: with('subCategory') - > get(); 他打印:

{ 
      "id": 43, 
      "name": "Quartos", 
      "subcategories_id": null, 
      "sub_category": [ 
       { 
        "id": 43, 
        "name": "Quartos", 
        "subcategories_id": null 
       } 
      ] 
     } 
    { 
     "id": 55, 
     "name": "Jovenil", 
     "subcategories_id": 2, 
     "sub_category": [ 
      { 
       "id": 55, 
       "name": "Jovenil", 
       "subcategories_id": 2 
      } 
     ] 
    } 

代替:

{ 
      "id": 43, 
      "name": "Quartos", 
      "subcategories_id": null, 
      "sub_category": [ 
       { 
        "id": 50, 
        "name": "Casal", 
        "subcategories_id": 1 
       } 
       { 
        "id": 51, 
        "name": "Jovenil", 
        "subcategories_id": 2 
       }(...) 
      ] 
     } 

爲什麼查詢會是什麼?

+0

我不明白。請修正您的拼寫錯誤,並解釋更徹底的是怎麼回事 – OskarD90

回答

0

只是嘗試這一點,並測試你的代碼,同時也分享你的結果

return Category::with('subCategory')->where('id',43)->get();

+0

結果是: [ { 「ID」:43, 「名」: 「Quartos」, 「subcategories_id」:空, 「sub_category」: [ { 「ID」:43, 「名稱」: 「Quartos」, 「subcategories_id」:空 } ] } ] –

+0

不會導致OK?或仍然失蹤。請驗證您的數據庫記錄,意味着檢查有多少記錄存在對'類別ID 43' – Qazi

+0

我只能出現一次。我的數據庫ID 43是類別「四分之一」。在json中出現類別和子類別。結果是:「quartos」:{'casal','jevenil'} –

0

我改變了:

Category Model 

class Cateogry extends Model { 
    public function subCategory(){ 
     return $this->hasMany('\App\SubCategory'); 
    } 
} 

SubCategory Model 

<?php 
class SubCategory extends Model { 
    public function Category(){ 
     return $this->belongsTo('\App\Category'); 
    } 
} 

這樣:

class Subcategory extends Model { 

     protected $table="categories"; 
     public $timestamps = false; 

     public function Category() { 
      return $this->belongsTo('\App\Category','id'); 
     } 

    } 

class Category extends Model { 

    protected $table="categories"; 
    public $timestamps = false; 

    public function subCategory() { 
     return $this->hasMany('\App\Subcategory','subcategories_id'); 
    } 

} 

和工程罰款,謝謝Qazi對我們的幫助

+0

是的,那就是我所要求的。大。 – Qazi