在這裡我就將Model稱為M職員,我們之前有提到Model的工作內容吧,
我們的M職員是負責管理資料的,只要是跟資料有關的都是M職員來幫我們處理。
以下簡單的介紹要如何讓Model去執行他的工作:
Step1.
資料之間的關係種類
我們要做的簡易作品集會用到一對多及一對一的部分,所以多對多的部分我會以文字敘述為主。
一對一:
一位作者會有一份自己的介紹(about me),這樣子就是一對一。
- 我們要先針對Aboutme的model進行撰寫,因為我們要與作者的關係作連結,所以在上面我們要先寫use App\User ;,使用User的資料。
- 接著要寫user的function,在這我們要寫對等的關係,所以要寫belongsTo ( ‘App\User’),綠色的部份是要填寫針對的model。
- 我們針對User的model在最上面寫上使用Aboutme的資料:use App\Aboutme ;。
- 下面的function要寫上aboutme與user的關係,hasone(‘App\Aboutme’);
一對多:
我們要放不只一個作品,所以這個情況下我們要用一對多去寫。
- 一開始我們先針對Work的model進行撰寫,在上面我們要先寫use App\User ;,使用User的資料。
- 一樣在這我們要寫對等的關係,因為作品是屬於作者,
所以要寫belongsTo ( ‘App\User’ , ‘user_id’ ),而藍色的部份是要兩個model想針對的資料欄位。
- 一樣我們針對User的model在最上面寫上使用Work的資料:use App\Work ;。
- 下面的function要寫上work與user的關係,那為什麼這邊會是works而不是work呢?
原因很簡單,因為我們有很多作品所以要用複數,所有作品跟user的關係。
多對多:
一位作者會有很多作品,而一個作品有可能會有兩位以上的作者,
這個情況就是多對多。以下我用假設的狀況:
//User model
public function cowork(){
return $this->belongsToMany(‘App\Cowork’, ‘user_cowork’, ‘user_id’, ‘cowork_id’);
}
//cowork Model
public function users(){
return $this->belongsToMany(‘App\User’, ‘user_cowork’, ‘cowork_id’, ‘user_id’);
}
針對作品與作者們的關係,所以會需要用到user_id和cowork_id,而後面底線的第一個部分要針對user_cowork來進行,’user_id’ 要與’cowork_id’’作對應。
以上是針對網頁model的撰寫,如果想知道更多對應關係
可以參考Laravel Migration、Model、DB物件相關操作 (濃縮)這篇文章喔~~