关联模型
文档地址: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);