关联关系详解

1. 一对一

/**
 * 获取与用户关联的地址信息。
 * 注:通过user表获取address信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联表外键
 * 第三个参数:主表关联id
 */
return $this->hasOne('App\address', 'user_id', 'id');
/**
 * 定义反向关联
 * 注:通过address表获取user信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联表外键
 * 第三个参数:主表关联id
 */
return $this->belongsTo('App\User', 'user_id', 'id');

2. 一对多

/**
 * 获取与用户关联的地址信息。
 * 注:通过user表获取address信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联表外键
 * 第三个参数:主表关联id
 */
return $this->hasMany('App\address', 'user_id', 'id');
/**
 * 定义反向关联
 * 注:通过address表获取user信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联表外键
 * 第三个参数:主表关联id
 */
return $this->belongsTo('App\User', 'user_id', 'id');

3. 多对多

/**
 * 获取与用户关联的地址信息。
 * 注:通过user表获取role信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联连接表的表名
 * 第三个参数:此关联的模型在连接表里的外键名
 * 第四个参数:另一个模型在连接表里的外键名
 */
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
/**
 * 定义反向关联
 * 注:通过role表获取user信息
 * 
 * 第一个参数:关联模型的类名
 * 第二个参数:关联连接表的表名
 * 第三个参数:此关联的模型在连接表里的外键名
 * 第四个参数:另一个模型在连接表里的外键名
 */
return $this->belongsToMany('App\User', 'role_user', 'user_id', 'role_id');
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!