mydal

怕光阴流逝 让一切都作废

0%

laravel模型关联

关联模型

一对一关系

关联模型的关联方法

在写关联模型时 要分析出是谁关联谁 谁做主模型,谁做次模型.

案例:(文章关联作者)

文章是主模型 关联代码写在主模型中

语法:

public function 被关联的模型名小写(){

​ return $this -> hasOne(‘需要关联模型的命名空间,’被关联模型的关系字段,’本模型中的关系字段’);

}

a.png

创建控制器方法:

a.png

显示效果:

aa.png

一对多关系

如:一个文章有多个评论

关联模型的关联方法

语法:

public function 被关联的模型名小写(){

​ return $this -> hasMany(‘需要关联模型的命名空间,’被关联模型的关系字段,’本模型中的关系字段’);

}

与hasOne方法相比,其只是把方法名称做了变化,其他与之前一致。

b.png

创建控制器方法:

bb1.png

显示效果:

b1.png

多对多关系

例如:一个文章可能有多个关键词,一个关键词可能被多个文章使用。

多对多的关系经过拆分之后其实就是两个一对多的关系

由于是双向一对多的关系,因此光靠2张表是无法建立的关系的,需要依靠第三张表建立关系(xx与xx的关系表)。

三张表:

wz.png

gjz.png

gxb.png

创建模型只需要给文章表和关键字表创建 关系表不需要创建

案例:查询出每个文章下面的全部关键词

语法:

return $this -> belongsToMany(被关联模型的元素空间路径,多对多模型的关系表名,当前模型中的关系键,被关联模型的关系键);

c.png

创建控制器方法

c1.png

显示效果:

c3.png