关联模型示例代码:
User.php 用户model类中 一个用户有多个地址 public function addresses() { return $this->hasMany(UserAddress::class); }
一、一对一 hasOne
public function fuser(){ return $this->hasOne(\App\User::class,'id','fan_id'); }
第二个参数是外键,第三个参数是当前类的主键
一对一 反向关联 belongsTo
二、一对多
一对多的反向
三、多对多
关联关系获取使用:
//获取管理关系中的几个字段,并且 按照 sort 排序 ,且重新排序key public function getDepartmentOne($id, $appendField = [], $isCombine = FALSE) { $data = $this->getOne($id, $appendField, $isCombine); if (isset($data['data'])) { $department = $data['data']; $department->tags = $department->tags()->get(['id', 'department_global_id', 'tags_global_id', 'sort'])->sortBy('sort')->values(); } return $data; } 高阶消息传递 集合也提供对「高阶消息传递」的支持,即集合常见操作的快捷方式。 支持高阶消息传递的集合方法有: average, avg, contains, each, every, filter, first, flatMap, groupBy, keyBy, map, max, min, partition, reject, some, sortBy, sortByDesc, sum, and unique。
看举例说明的这两个方法
public function module() { return $this->belongsTo('App\Models\BhcRegionC\AreaModule', 'module_id', 'id'); } public function features() { return $this->hasMany('App\Models\BhcRegionC\ModuleAssociateFeature', 'area_module_id', 'id'); }