一对一
常见:一个作者对一个文章
语法:$this->hasOne(“关联的模型命名空间”,”外键id”,”本模型关联id”);
控制器:
//dd($data=$article->author());
$data=\App\models\Article::get();
foreach ($data as $k => $v)
{
echo $v->id.$v->article.$v->author->author."<br>";
}
模型:
$this->hasOne("App\models\Author","author_id","article_id");
一对多
例如:一篇文章有多个评论
语法:
$this->hasMany(“关联的模型命名空间”,”外键id”,”本模型关联id”);
模型:
public function comment()
{
return $this->hasMany("App\models\comment","article_id","id");
}
控制器:
public function hasMary()
{
$data=\App\models\Article::get();
foreach ($data as $k => $v)
{
echo $v->article.'文章'."<br>";
foreach ($v->comment as $key =>$value){
echo "$value->comment","<br>";
}
}
}
多对多关系
例如:一个文章有多个关键词,一个关键词有多个文章
多对多的关系拆分之后就是两个一对多的关系。
语法:
$this->belongsToMany(“需要关联的模型命名空间”,”多对多的关系表”,”当前模型关系键”,”被链接的关系键”);