2016-03-01 92 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