Laravel 8 附加 / 分離

2021-07-19 11:41 更新

Eloquent 也提供了一些額外的輔助方法,使相關模型的使用更加方便。例如,我們假設一個用戶可以擁有多個角色,并且每個角色都可以被多個用戶共享。給某個用戶附加一個角色是通過向中間表插入一條記錄實現(xiàn)的,可以使用 attach 方法完成該操作:

$user = App\Models\User::find(1);

$user->roles()->attach($roleId); 

在將關系附加到模型時,還可以傳遞一組要插入到中間表中的附加數(shù)據(jù):

$user->roles()->attach($roleId, ['expires' => $expires]); 

當然,有時也需要移除用戶的角色??梢允褂?detach 移除多對多關聯(lián)記錄。detach 方法將會移除中間表對應的記錄;但是這兩個模型都將會保留在數(shù)據(jù)庫中:

// 移除用戶的一個角色...
$user->roles()->detach($roleId);

// 移除用戶的所有角色...
$user->roles()->detach(); 

為了方便起見,attachdetach 也允許傳遞一個 ID 數(shù)組:

$user = App\Models\User::find(1);

$user->roles()->detach([1, 2, 3]);

$user->roles()->attach([
    1 => ['expires' => $expires],
    2 => ['expires' => $expires],
]); 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號