当前位置: 代码迷 >> 综合 >> laravel 关联模型 第四天
  详细解决方案

laravel 关联模型 第四天

热度:68   发布时间:2023-10-10 22:37:51.0

关联模型

文档地址:https://docs.qq.com/doc/DQUFEZ0N1SkFQR1p4

    // 用户基础表和扩展表 一对一关系 hasonepublic function userinfo(){#          关联关系    关联模型  外键id 主键id// return $this->hasOne(UsersInfo::class,'users_id','id');// 简写的原则就是             外键就是 表名_id 主键 就是 id 此时就可以简写return $this->hasOne(UsersInfo::class);}//  一个用户对应文章 一对多关系 hasmanypublic function articles(){return $this->hasMany(Articles::class,'user_id','id');}// 多对多关系 belongsToManypublic function auths(){                                  # 关联模型           中间表表名—没有前缀      本模型 对应中间表中的字段 关联模型对应中间表的字段return $this->belongsToMany(Auth::class,'user_auth','user_id','auth_id');}
        # n+1$user = User::find(1);dump($user->userinfo);#预加载$user = User::with('userinfo')->where('id',1)->first();#调用扩展名中的信息dump($user->userinfo->body);dump($user);$user = User::find(1);$arts = $user->articles->toArray();// 写条件$arts = $user->articles()->where('id','>',1)->get()->toArray();$arts = User::with(['articles'=>function($query){$query->where('id','>=',1);}])->where('id',1)->first();dump($arts);// 取文章列表dump($arts->articles);