亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除模型時,請分離數據透視表中模型的每個記錄

刪除模型時,請分離數據透視表中模型的每個記錄

PHP
料青山看我應如是 2021-05-07 14:13:51
想象一下我有User和Role模特?,F在,我正在從數據庫中刪除多個用戶。例如,我刪除了ID為1、2、3和4的用戶?,F在,我想從數據透視表中刪除其中user_id = 1、2、3或4的所有內容。最佳方法是什么?我的意思是laravel實現。
查看完整描述

3 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

如果用戶和角色之間存在許多關系,則可以按以下方式解決您的問題


這是示例代碼User.php


class User extends Authenticatable implements CanResetPassword

{

  protected $table = "users";


 public function roles(){

  return $this->belongsToMany(Role::class,'role_user');

 }

}

Role.php


class Role extends Model{

  protected $table = "roles";


 public function users(){

  return $this->belongsToMany(User::class,'role_user');

 }

}

在您的控制器上,您可以執行此操作


class AnyTestController extends Controller{

  public function test(){

   //Suppose your user id is 1 then delete user from pivot table 

   $user = User::find(1);

   $user->roles()->detach();

   $user->delete();

   }

}


查看完整回答
反對 回復 2021-05-28
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

在刪除數據透視表中的用戶或角色清除寄存器之前,將此模型添加到模型中。


User.php


protected static function boot ()

{

    parent::boot();


    static::deleting (function ($user) {

        $user->roles()->detach();

    });

}

Role.php


protected static function boot ()

{

    parent::boot();


    static::deleting (function ($role) {

        $role->users()->detach();

    });

}


查看完整回答
反對 回復 2021-05-28
  • 3 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號