區分父表與子表
1.”一”的是父表
2.”多”的一方是子表
如何處理一對多關系
在子表中建一個字段(外鍵)指向父表
如何處理多對多關系
建立一張中間表,将”多對多”關系轉化為”一對多”
一對一hasOne
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserModel extends Model
{
public function Userinfo()
{
/*
* @param [string] [name] [需要關聯的模型類名]
* @param [string] [foreign] [參數一指定資料表中的字段]
* */
return $this->hasOne(UserInfo::class,'user_id');
}
}
一對多hasMany
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserModel extends Model
{
public function article()
{
return $this->hasOne(Article::class,'user_id');
}
}
多對一 belongTo
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserModel extends Model
{
public function city()
{
return $this->belongTo(City::class,'city_id');
}
}
多對多 belongToMany
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserModel extends Model
{
public function Role(){
/*
* 第一個參數:要關聯的表對應的類
* 第二個參數:中間表的表名
* 第三個參數:目前表跟中間表對應的外鍵
* 第四個參數:要關聯的表跟中間表對應的外鍵
* */
return $this->belongsToMany('App\Role','user_role','user_id','role_id');
}
}