关联关系详解

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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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