企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
**一对多hasMany模式** **1.hasMany模式,适合主表关联附表,实现一对多查询,具体设置方式如下:** **hasMany('关联模型',\['外键','主键'\]);** **return $this->hasMany('profile','user\_id','id');** **关联模型(必须):模型名或者模型类名** **外键:关联模型外键,默认的外键名规则是当前模型名加\_id** **主键:当前模型主键,一般会自动获取也可以指定传入** ### ***2.实现的查询方案:*** **$user = UserModel:get(10);** **return json($user->profile);** ### ***3.使用->profile()方法模式,可以进一步进行数据的筛选;*** return json($user->profile()->where('id','>',10)->select()) ### \*\*\*4.使用has()方法,查询关联附表的主表内容,\*\*\*比如大于等于2条的主表记录,这个也相当于反向查询了,从附表推出主表数据 UserModel::has('profile','>=',2)->select() ### ***5.使用hasWhere()方法,查询关联附表筛选后的记录*** UserModel::hasWhere('profile',\['status'=>1\])->select(); ### ***6.使用save()和saveAll()进行关联新增和批量关联新增,方法如下:*** $user = UserModel::get(10); $user->profile()->save(\['hobby'=>'测试喜好','status'=>1\]); 批量新增 $user->profile()->saveAll(\[ \['hobby'=>'测试喜好','status'=>1\], \['hobby'=>'测试数据','status'=>1\] \]) ### ***7.使用together()方法,可以删除主表内容时,将f附表关联的内容全部删除*** $user = UserModel::get(221,'profile'); $user->together('profile')->delete() ***** ***** *****