W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
就如你剛才所了解的一樣,多對多的關聯(lián)關系需要一個中間表來提供支持, Eloquent 提供了一些有用的方法來和這張表進行交互。例如,假設我們的 User
對象關聯(lián)了多個 Role
對象。在獲得這些關聯(lián)對象后,可以使用模型的 pivot
屬性訪問中間表的屬性:
$user = App\Models\User::find(1);
foreach ($user->roles as $role) {
echo $role->pivot->created_at;
}
需要注意的是,我們獲取的每個 Role
模型對象,都會被自動賦予 pivot
屬性,它代表中間表的一個模型對象,并且可以像其他的 Eloquent 模型一樣使用。
默認情況下,pivot
對象只包含兩個關聯(lián)模型的主鍵,如果你的中間表里還有其他額外字段,你必須在定義關聯(lián)時明確指出:
return $this->belongsToMany('App\Models\Role')->withPivot('column1', 'column2');
如果你想讓中間表自動維護 created_at
和 updated_at
時間戳,那么在定義關聯(lián)時附加上 withTimestamps
方法即可:
return $this->belongsToMany('App\Models\Role')->withTimestamps();
注意:在數(shù)據透視表上使用時間戳時,該表必須同時具有
created_at
和updated_at
時間戳字段。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: