在一个JSON

时间:2015-12-25 11:22:27

标签: laravel

我试图在一个JSON中获取所有属性。

例如: 考虑我有一个表“地方”,“id”,“name”,“description”作为属性。 现在, 我有另一个表“region”,其中“id”,“name”,“place_id”,“description”作为属性(或)架构。 地方和地区之间存在一对多的关系。

现在,我将另一个表“street”定义为“id”,“name”,“region_id”作为其架构。 “地区”和“街道”之间再次存在一对多的关系。

我想得到一个地方的所有细节。如果有一个地方“1,banglore,花园城市”,并且有两个地区,那个place_id为 “{”1,rtnagar,1,banglore中的地区“},{”2,as​​hok nagar,1,banglore中的地区“}”。这里“1”是“banglore's id(1)”的外键引用ID。

现在,类似地,如果每个区域在街道表中有3条街道。我想在一个JSON中获取所有值。我知道我们可以通过 foreach 来实现这一目标。但是,我想要一个有效的解决方案,从Region,Street in JSON获得与Place模型的所有嵌套关系。

感谢。

1 个答案:

答案 0 :(得分:1)

首先需要定义一对多关系,如:

 class Places extends Eloquent{
 ....
    public function regions()
    {
        return $this->hasMany('App\Region');
    }
 ...
 }

街道也一样:

 class Regions extends Eloquent{
 ....
 public function streets()
    {
        return $this->hasMany('App\Street');
    }
....
}

请注意,我假设您的模型位于App文件夹中并具有相应的命名空间。 之后,您可以获得如下模型:

Place::with('regions.streets')->get();

如果发送json响应,它将自动嵌套所有关系并转换为JSON。