laravel 模型关联 一对多

昨天记了笔记,一对一关联,今天做了修改

一篇文章对应多个评论   一个评论对应一个用户信息

现在通过 url 传递过来文章的 id ,查询到文章传递给视图显示

评论和用户信息,通过关联来获取

我的评论表 comment 有 user_id  post_id  content

用户信息表有 user_id 

关联如下:Comment中  return $this->hasOne(' App\Userinfo ' , ' user_id ' , ' user_id ' );

Userinfo中  return $this->belongsTo(' App\Comment ');

在这里说明一下,comment中关联的参数,评论表关联用户信息表,第一个参数为用户信息模型,第二个参数为用户信息表的外键,默认为评论表名加上_id 如 comment_id 用户信息表中没有这个外键会找不到,我的用户信息表没有这个评论的外键,我去指定这个发起评论的用户id的外键为 user_id ,第三个参数为评论表中与用户信息表对应的键,默认为评论表的id,在这里我设置为评论表中的 user_id 字段。

我用评论模型去预加载用户信息的时候,它会通过第三个参数,与第二个参数对比,如果一致,则取出参数。

通常我们在做关联的时候,会在被关联的表里面做外键(关联表的名字+id)来进行关联,这样就不用去设置第二第三参数,但是有时候在没有设置外键,或者关联表的id与被关联表的外键,不是我们进行关联的字段,第二第三参数就比较有用了。

猜你喜欢

转载自www.cnblogs.com/muwu/p/9019029.html