IDEA激活码 (2024-03-27)
全网最全idea主题,phpstorm主题,webstorm主题免费下载

loquent模型关联关系——一对多或多对一

多对一和一对一几乎没有区别。只要在上篇文章中理解hasOne和belognsTo方法的含义,不需要做其他理解,可以直接使用hasMany方法来描述多对一关系。也就是说,无论是一对一还是多对一(反过来说是一对多),都是通过hasOne,hasMany,belongsTo三个方法来描述其关系。

一般来讲我们通过在多方添加外键来描述多对一关系。比如文章和评论。二者关系为:一个文章【拥有】多个评论,多个评论【属于】一篇文章。那么明显二者关联关系应该如下定义:

在一方,使用hasMany方法描述其【拥有多个】评论。

在多方,使用belongsTo方法描述多个评论【属于】一个文章。 

只需要注意以下几个点

  1. 使用hasMany描述关联关系的方法使用复数,这里为comments方法而不是comment。也可以直接命名为commentList,只要能描述其是一个复数即可。
  2. 可以直接使用post->comments动态属性取值,也可以附加条件,比如

  1. 其他地方和一对一中的概念相同, 比如hasMany方法的默认参数,第二个参数仍然是外键,第三个参数仍然是被引用的主键。

热门评论

    暂无