0
我有一個塊模型,這基本上是阻止用戶。它有一個target_id
和一個sender_id
,兩者都是來自用戶表的ID。當用戶想要阻止其他用戶時,如何將數據添加到此數據透視表中?我的關係方法應該是什麼樣子?如何在Laravel中將數據插入屬於同一模型的列中的數據透視表中?
我有一個塊模型,這基本上是阻止用戶。它有一個target_id
和一個sender_id
,兩者都是來自用戶表的ID。當用戶想要阻止其他用戶時,如何將數據添加到此數據透視表中?我的關係方法應該是什麼樣子?如何在Laravel中將數據插入屬於同一模型的列中的數據透視表中?
由於兩個target_id和SENDER_ID來自users
表中的字段,你們的關係一定要這樣定義。
class User {
public function blocks() {
return $this->belongsToMany('App\User','blocked_users','sender_id','target_id')->withPivot(['id']);
}
public function blockedBy() {
return $this->belongsToMany('App\User','blocked_users','target_id','sender_id')->withPivot(['id']);
}
}
這裏blocked_users
是表的名稱。
所以,要阻止你可以做一個用戶: -
//User who is going to block
$user = User::find($id);
$inputs = [$target_user_id];
$user->blocks()->attach($inputs);
//or you can use,
$user->blocks()->sync($inputs, false);
在上面同步假的時候,老同步行被忽略,新的連接使用。
要得到誰的特定用戶已阻止用戶的列表,你可以這樣做: -
$user = User::find($id);
$user->blocks;
而得到誰該特定用戶被
$user = User::find($id);
$user->blockedBy;
被阻止用戶的列表謝謝,