一对一

常见:一个作者对一个文章

语法:$this->hasOne(“关联的模型命名空间”,”外键id”,”本模型关联id”);
控制器:

  1. //dd($data=$article->author());
  2. $data=\App\models\Article::get();
  3. foreach ($data as $k => $v)
  4. {
  5. echo $v->id.$v->article.$v->author->author."<br>";
  6. }

模型:

$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(“需要关联的模型命名空间”,”多对多的关系表”,”当前模型关系键”,”被链接的关系键”);