# 關聯表_@LIMO
:::success
1.要處理關聯表,要先釐清資料表結構。
2.資料表可視為陣列(Array)包覆多筆物件(Object)。
3.而物件是由鍵(key)與值(value)所組成,並以鍵取出物件之值。
下方表格,即可成分解成上述形式:
:::
<table style="display:inline">
<tr>
<td colspan="3"><b>資料表</b></td><td><b>陣列顯示</b></td>
</tr>
<tr><td>id</td><td>name</td><td>price</td><td></td></tr>
<tr>
<td>1</td><td>a</td><td>100</td><td>["id"=>1,"name"=>"a","price"=>100]</td>
</tr>
<tr>
<td>2</td><td>b</td><td>200</td><td> ["id"=>2,"name"=>"b","price"=>200]</td>
</tr>
</table>
<br><br>
<div>
</div>
即該資料欄位是否由多個值組成、還是指定應一個值。若是該資料欄位要塞入多筆
### 名詞解釋
|| N對一|N對多|
|-|:-:|:-:|
||該欄位只對應<b>1</b>筆資料|該欄位只對應<b>多</b>筆資料|
|使用函數名稱|hasOne()|hasMany()|
|| | | |
|結構解釋|結構範例|
|-|-|
|hasOne('<a style="color:#f00">路徑</a>','<a style="color:#f00">欄位</a>','<a style="color:#00f">欄位')|hasOne('App\Productype','id','type_id')|
|hasMany('<a style="color:#f00">路徑</a>','<a style="color:#f00">欄位</a>','<a style="color:#00f">欄位')|hasMany('App\Productype','id','type_id')|
|🍋: <a style="color:#f00">對方的 <a style="color:#f00">對方的 <a style="color:#00f">自己的</a>| |
N對一
public function 函數名稱(){
// 對應一個項目
return $this->hasOne('App\Productype','id','type_id');
}
<br>
N對多
public function gotProductImg(){
// 對應多個項目
return $this->hasMany('App\Product','product_id','id');
}
### 資料表
<table style="display:inline">
<tr align=center>
<td colspan="2"><b>product_types</b></td>
</tr>
<tr><td style="color:#00f;">id</td><td>name</td></tr>
<tr><td>1</td><td>奇怪</td></tr>
<tr><td>2</td><td>可愛</td></tr>
</table>
<table style="display:inline">
<tr align=center>
<td colspan="4"><b>products</b></td>
</tr>
<tr><td style="color:#f00;">id</td><td>name</td><td style="color:#00f;">type_id</td><td>price</td></tr>
<tr><td>1</td><td>黛西</td><td>2</td><td>100</td></tr>
<tr><td>2</td><td>喬治</td><td>2</td><td>200</td></tr>
<tr><td>3</td><td>凱蒂</td><td>1</td><td>300</td></tr>
<tr><td>4</td><td>傑克</td><td>2</td><td>100</td></tr>
</table>
<table style="display:inline">
<tr align=center>
<td colspan="3"><b>product_imgs</b></td>
</tr>
<tr><td>id</td><td style="color:#f00;">product_id</td><td>imgs</td></tr>
<tr><td>1</td><td>1</td><td>e</td></tr>
<tr><td>2</td><td>1</td><td>f</td></tr>
<tr><td>3</td><td>2</td><td>g</td></tr>
<tr><td>4</td><td>2</td><td>h</td></tr>
<tr><td>5</td><td>2</td><td>i</td></tr>
<tr><td>6</td><td>3</td><td>g</td></tr>
<tr><td>7</td><td>3</td><td>k</td></tr>
</table>