关联模型
一对一关系
关联模型的关联方法
在写关联模型时 要分析出是谁关联谁 谁做主模型,谁做次模型.
案例:(文章关联作者)
文章是主模型 关联代码写在主模型中
语法:
public function 被关联的模型名小写(){
return $this -> hasOne(‘需要关联模型的命名空间,’被关联模型的关系字段,’本模型中的关系字段’);
}
创建控制器方法:
显示效果:
一对多关系
如:一个文章有多个评论
关联模型的关联方法
语法:
public function 被关联的模型名小写(){
return $this -> hasMany(‘需要关联模型的命名空间,’被关联模型的关系字段,’本模型中的关系字段’);
}
与hasOne方法相比,其只是把方法名称做了变化,其他与之前一致。
创建控制器方法:
显示效果:
多对多关系
例如:一个文章可能有多个关键词,一个关键词可能被多个文章使用。
多对多的关系经过拆分之后其实就是两个一对多的关系。
由于是双向一对多的关系,因此光靠2张表是无法建立的关系的,需要依靠第三张表建立关系(xx与xx的关系表)。
三张表:
创建模型只需要给文章表和关键字表创建 关系表不需要创建
案例:查询出每个文章下面的全部关键词
语法:
return $this -> belongsToMany(被关联模型的元素空间路径,多对多模型的关系表名,当前模型中的关系键,被关联模型的关系键);
创建控制器方法
显示效果: