关联模型示例代码:
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');
}