Laravel 关联其他表

我有这样的情况:


用户模型:


public function role() {

        return $this->hasOne('App\model\Roles' , 'id' ,'role');

    }


    public function userMetaData() {

        return $this->hasOne('App\model\UserMetaData' , 'user_id' ,'id');

    }


    public function userBet() {

        return $this->hasMany('App\model\UserBet' , 'user_id' , 'id');

    }


    public function userComission() {

        return $this->hasMany('App\model\UserComission' , 'user_id' , 'id');

    }


    public function userPartnership() {

        return $this->hasMany('App\model\UserPartneShip' , 'user_id' , 'id');

    }

    // Self Call

    public function parentData() {

        return $this->hasOne('App\User','id','parent_id');

    }

控制器


$userData = User::with(['userMetaData','userBet','userComission','userPartnership','role','parentData'])

                            ->where('id',$id)

                            ->get();  

现在重点是role我正在获取用户的角色,并且parentData我正在通过自我调用从同一个用户表中获取用户(父)的创建者,现在父也有一个role


我的问题是如何将role对象放入对象中parentData ?谢谢!


阿波罗的战车
浏览 97回答 1
1回答

海绵宝宝撒

首先..你设置的关系是错误的,它应该是belongsTopublic function role() {    return $this->belongsTo('App\model\Roles' ,'role', 'id');}public function parentData() {    return $this->belongsTo('App\User','parent_id','id');}现在,正如您想要的那样,集合role内的对象parentData如下所示。$userData = User::with(['userMetaData','userBet','userComission','userPartnership','parentData.role'])                  ->where('id',$id)                  ->get();  
打开App,查看更多内容
随时随地看视频慕课网APP