美文网首页
ORM 关联关系

ORM 关联关系

作者: 爱折腾的傻小子 | 来源:发表于2018-10-29 11:00 被阅读29次

关于文档的注解:仅供学习所用!!!


--

ORM的映射关联关系,需要字段之间建立外键(如果指明可以省略建立外键)

映射关系

一对一:比如 **球队** 和 **球队地址** 之间的对应关系
一对多:比如 **球队** 和 **球队队员** 之间的对应关系

准备:

外键,简介:
> 一:有表members字段id、name、age
> 二:有表configs字段key、value、comment、u_age
建立外键 members.age -> configs.u_age (正向映射)(反之,反向映射)

一对一

//> hasOne方法基本用法:(正向查询)
参数一:需要管理的模型名(也就是关联外键的表的映射)
参数二:外键字段名称
参数三:本地字段与外键关联的字段名称
return $this->hasOne('App\Phone','foreign_key','local_key');

虽然参数二或三都可以省略,但是最好写上。
如果省略:参数二(默认的是id字段),参数三(默认的是user_id)这里参考文档。



相对关联:(反向查询)

//> belongsTo()方法:参数二和参数三都可以省略
belongsTo('App\User', 'foreign_key', 'other_key');
参数二:外键字段名称
参数三:本地字段与外键关联的字段名称
参数和hasOne一样

一对多

比如:一篇博客文章拥有的无数评论之间的关系,一样。

hasMany() 方法,定义一对多,和hasOne方法使用一致
三个参数的使用也是一样

一对多(反向):

//> 还是使用belongsTo方法,和上面的使用一致


多对多

简介:比如,一个用户拥有多个角色,同时一个角色又拥有多个用户。

// 我们看一下数据表之间的字段
users Table ( 用户表 )
id
name
> - - - - - - -
roles Table (角色表)
id
name
> - - - - - - -
role_user (关联表)
user_id
role_id

这里的字段字段之间,没有设置外键关联




获取中间表的字段(这里获取的时lv_role_users表,默认添加字段comment)



定义相对的关联关系:



注意:上面的users被调用时,不是当作属性使用,而是当作方法。

远程的一对多


相关文章

  • ORM 关联关系

    参看手册文档 关联关系 可以 创建外键或不创建外键 假设存在 users 表 id(主键) -> phones 表...

  • ORM 关联关系

    关于文档的注解:仅供学习所用!!! -- ORM的映射关联关系,需要字段之间建立外键(如果指明可以省略建立外键) ...

  • Eloquent ORM -关联关系

    Eloquent ORM -关联关系 一对一 比如一个用户只能拥有一个手机号码 一对多 比如一篇文章拥有多个评论 ...

  • 05 Django2.2.12-ORM 关联关系操作

    Django2.2.12-ORM 关联关系操作 一、ORM 多表的用途 之前保存了服务器的基础信息,其实服务器的信...

  • orm FQ聚合函数自关联关系

    可以使用模型的字段A与字段B进行比较,如果A写在了等号的左边,则B出现在等号的右边,需要通过F对象构造 ;之前的查...

  • Django中ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object ...

  • Hibernate初探之单表映射

    什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么需要ORM ...

  • Django ORM详解

    Django ORM详解 什么是ORM? ORM,即Object-Relational Mapping(对象关系映...

  • 1.ORM

    ORM 基本介绍 关系对象映射(Object Relational Mapping,简称ORM) ORM 是如何和...

  • Hibernate框架(1) - 配置文件

    ORM概念 ORM, 对象关系映射!O : Object对象R : Realtion关系(关系型数据库: MySQ...

网友评论

      本文标题:ORM 关联关系

      本文链接:https://www.haomeiwen.com/subject/ipvyittx.html