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

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

基于數組中的記錄創建多行 - laravel

基于數組中的記錄創建多行 - laravel

PHP
慕容708150 2021-11-05 14:48:03
我有以下查詢返回一組 user_ids,每個用戶都會收到通知。$pstusrmembs = DB::table('postusrs')                    ->where('post_id', $post_id)                    ->where('accepted', 1)                    ->pluck('user_id');我需要將每個 user_id 放在下面“插入”代碼的不同行中:                      $notifs = new Notif();                      $notifs->rec_uid = $pstusrmembs;                      $notifs->title = $post_title;                      $notifs->save();我$notifs->rec_uid = $pstusrmembs;該如何改變才能做到這一點?
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

為此使用 for 循環:


foreach($pstusrmembs as $userID){

        $notifs = new Notif();

        $notifs->rec_uid = $userID;

        $notifs->title = $post_title;

        $notifs->save();

}

如果您正在使用批量分配概念


foreach ($pstusrmembs as $userID) {

    Notif::create(['rec_uid' => $userID, 'title' => $post_title]);

  }

如果您使用的是沒有任何模型事件或偵聽器的批量分配概念


foreach ($pstusrmembs as $userID) {

     $arrayOfNotif[] = ['rec_uid' => $userID, 'title' => $post_title];

  }


  Notif::insert($arrayOfNotif);


查看完整回答
反對 回復 2021-11-05
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

我會建議使用 DB 事務來保持數據庫一致,即使在系統故障的情況下,并將該列表準備為數組并插入一行......


$prepare = [];

foreach($pstusrmembs as $p) {

  $prepare[] = [

    'rec_id' => $p,

    'title' => $post_title

  ];

}

DB::beginTransaction();

try {

   Notif::insert($prepare);

   DB::commit();

} catch (Exception $e) {

   DB::rollback();

}


查看完整回答
反對 回復 2021-11-05
  • 2 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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