为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 关联其他表

Laravel 关联其他表

PHP
阿波罗的战车 2023-04-28 14:10:28
我有这样的情况:用户模型: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 ?谢谢!
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

首先..你设置的关系是错误的,它应该是belongsTo


public 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();  


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信