作为程序员一定要保持良好的睡眠,才能好编程

laravel一对多 多对多 模型关联 图示

发布时间:2020-01-28


关联模型示例代码:


User.php 用户model类中 一个用户有多个地址

public function addresses()
{
    return $this->hasMany(UserAddress::class);
}





一、一对一 hasOne


mx1.png




mx2.png

public function fuser(){
    
    return $this->hasOne(\App\User::class,'id','fan_id');

}



第二个参数是外键,第三个参数是当前类的主键

一对多.png

关联存储.png




5.png





一对一 反向关联 belongsTo


wx3.png



二、一对多


ydd1.png


ydd2.png



一对多的反向


ydd3.png



三、多对多


moremx44.png


moremx1.png

moremx2.png



moremx3.png









关联关系获取使用:

//获取管理关系中的几个字段,并且 按照 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');
    }









laravel jwt登陆.docx

关联模型.docx