Laravel 5让用户获得关系和多重关系

时间:2015-09-24 15:03:06

标签: php mysql laravel-5.1

下面的数据库

User : id,name,age
Shop : id,user_id,name
Address : id, shop_id, address
Shop Type : id, shop_id, type

[用户]有多个[商店],[商店]有多个分店,所以它有多[地址],[商店]也有多种类型,如酒,食品,小吃,饮料等等。

现在我希望获得所有地址和商店类型的用户商店。

在我使用的模型中 用户类

public function shop(){
     return $this->hasMany('App\Shop');
}

商店类

public function address(){
     return $this->hasMany('App\Address');
}

public function type(){
     return $this->hasMany('App\ShopType');
}

我的控制

public function user($id)
    {
            $user = User::where("id",$id)->with('shop.address')->first();
    if($user){
            return response()->json(
                [
                    'user' => $user,
                ],
                200,
                array(),
                JSON_PRETTY_PRINT
            );
    }else{
            return false;
    }

上面的代码可以获取所有用户的商店和商店的地址 但我怎样才能得到商店的类型?

由于

1 个答案:

答案 0 :(得分:2)

试试这个:

User::where('id', $id)->with('shop.address', 'shop.type')->first();

(最初评论)