婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解

Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解

熱門標簽:百度地圖標注飯店位置怎么 個性化地圖標注在線 百度地圖標注名編輯 襄陽房產電銷機器人招商 怎么在高德地圖標注行走軌跡 施工地圖標注怎么做 安徽移動外呼系統 深圳400電話辦理那家好 清遠陽山400電話號碼如何申請

前言

如果大家在Laravel中要想在數據庫事務中運行一組操作,則可以在 DB facade 中使用 transaction 方法。如果在事務的閉包內拋出異常,事務將會被自動還原。如果閉包運行成功,事務將被自動提交。

你不需要擔心在使用 transaction 方法時還需要親自去手動還原或提交事務:

DB::transaction(function () {
 DB::table('users')->update(['votes' => 1]);

 DB::table('posts')->delete();
});

手動操作事務

如果你想手動處理事務并對還原或提交操作進行完全控制,則可以在 DB facade 使用 beginTransaction 方法:

DB::beginTransaction();

你也可以通過 rollBack 方法來還原事務:

DB::rollBack();

最后,可以通過 commit 方法來提交這個事務:

DB::commit();

注意: DB facade 的事務方法也可以用來控制 查詢語句構造器 及 Eloquent ORM 的事務。

示例介紹

假設有要在數據庫中存儲一個知識點,這個知識點同時屬于兩個不同的考點,也就是考點和知識點這兩個數據是多對多的關系,那么要實現這種數據結構就需要三個表:

知識點表 wiki:

---------------------------------------
id  title    content
--------------------------------------- 

考點表 tag:

-------------------
id  name
-------------------

考點知識點關聯表 wiki_tag_rel

----------------------------------
id   tag_id  wiki_id
----------------------------------

現在要開啟事務新增Wiki數據,新增wiki成功后再把它關聯到指定的考點上去

(在laravel中使用查詢構建器或者Eloquent ORM執行query時,如果失敗會返回 Illuminate\Database\QueryException 異常)

?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
use App\Wiki;

class TestController extends Controller
{
 //用DB facade的事務方法控制 查詢語句構建器的事務
 public function storeWiki(Request $request)
 {
  DB::beginTransaction();
  try {
   $tagIds = explode(',', $request->get('tag_id'));
   $wiki_id = DB::table('wiki')->insertGetId([
    'title' => $request->get('title'),
    'content' => $request->get('content')
   ]);

   $relationData = [];
   foreach($tagIds as $tagId) {
    $data = ['wiki_id' => $wiki_id, 'tag_id' => $tagId];
    $relationData[] = $data;
   }
   DB::table('wiki_tag_rel')->insert($relationData);
   DB::commit();
  } catch(\Illuminate\Database\QueryException $ex) {
   DB::rollback();
   return \Response::json(['status' => 'error', 'error_msg' => 'Failed, please contact supervisor']);
  }
  
  return \Response::json(['status' => 'ok']);
 }


 //用DB facade的事務方法控制 Eloquent ORM的事務
 public function createWiki(array $data)
 {
  DB::beginTransaction();
  try {
   $tagIds = explode(',', $data['tag_id']);
   $newWiki = Wiki::create([
    'title' => $data['title'],
    'content' => $data['content']
   ]);
   //Wiki和Tag兩個Model使用了belongsToMany建立了多對多的關系
   //通過attach方法來附加wiki和tag的關系(寫入中間表)
   $newWiki->tags()->attach($tagIds);
   DB::commit();
  } catch(QueryException $ex) {
   DB::rollback();
   return \Response::json(['status' => 'error', 'error_msg' => 'Failed, please contact supervisor']);
  }

  return \Response::json(['status' => 'ok']);
  }

}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Laravel框架數據庫CURD操作、連貫操作總結
  • PHP開發框架Laravel數據庫操作方法總結
  • Laravel5.7 數據庫操作遷移的實現方法
  • Laravel框架實現多數據庫連接操作詳解
  • Laravel5.1數據庫連接、創建數據庫、創建model及創建控制器的方法
  • PHP的Laravel框架結合MySQL與Redis數據庫的使用部署
  • Laravel實現數據庫遷移與支持中文的填充
  • Laravel創建數據庫表結構的例子
  • Laravel如何同時連接多個數據庫詳解
  • laravel框架數據庫配置及操作數據庫示例

標簽:臨夏 欽州 延邊 黑河 阜陽 南昌 駐馬店 中衛

巨人網絡通訊聲明:本文標題《Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解》,本文關鍵詞  Laravel,如何,使用,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解》相關的同類信息!
  • 本頁收集關于Laravel如何使用數據庫事務及捕獲事務失敗后的異常詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    www.66久久| 另类成人小视频在线| 91精品91久久久中77777| 亚洲色图一区二区| 欧美一区二区视频在线观看2020| 日本v片在线高清不卡在线观看| 在线不卡中文字幕| 国产精品综合在线视频| 国产亚洲精品7777| 日韩精品电影一区亚洲| 国产精品美女视频| 欧美一级片在线| 波多野结衣亚洲一区| 一二三区精品视频| 国产老妇另类xxxxx| 亚洲一区精品在线| 青青青爽久久午夜综合久久午夜| 亚洲在线成人精品| 蜜桃视频一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日本一道本在线视频| 国内精品写真在线观看| 一区二区三区中文免费| 欧美tickling网站挠脚心| 精品国产第一区二区三区观看体验 | 成a人片亚洲日本久久| 风间由美一区二区av101| av一区二区三区在线| 亚洲一区二区三区在线| 久久久www成人免费毛片麻豆 | 国产成人免费av在线| 国产成人丝袜美腿| caoporen国产精品视频| 99久久久久久| 欧美自拍丝袜亚洲| 日韩三级av在线播放| 中文字幕av一区二区三区高| 一区二区视频免费在线观看| 男女视频一区二区| 99re热视频这里只精品| 日韩一级片网址| 亚洲欧洲精品成人久久奇米网| 亚洲一二三区不卡| 国产精品123区| 欧美在线看片a免费观看| 2023国产精华国产精品| 亚洲一区二区三区免费视频| 蓝色福利精品导航| 在线一区二区三区做爰视频网站| 国产欧美一区二区精品性| 久久成人久久爱| 91精品久久久久久蜜臀| 成人天堂资源www在线| 精品国产91久久久久久久妲己| 秋霞电影网一区二区| 91精品国产色综合久久| av一区二区不卡| 欧美三级韩国三级日本三斤| 亚洲老司机在线| 欧美日韩久久久一区| 偷偷要91色婷婷| 欧美大肚乱孕交hd孕妇| 美国欧美日韩国产在线播放| 欧美va亚洲va在线观看蝴蝶网| 麻豆极品一区二区三区| 欧美岛国在线观看| 风间由美性色一区二区三区| 综合精品久久久| 欧美日韩精品福利| 精品一区免费av| 国产女同互慰高潮91漫画| 99re成人精品视频| 日韩精品视频网站| 欧美国产综合一区二区| 91黄色免费看| 激情国产一区二区| 中文字幕制服丝袜成人av| 欧美日韩小视频| 成人成人成人在线视频| 婷婷一区二区三区| 久久婷婷色综合| 国产亚洲精品精华液| 日本高清不卡视频| 大尺度一区二区| 麻豆国产一区二区| eeuss国产一区二区三区| 激情都市一区二区| 日韩av高清在线观看| 亚洲一区二区三区四区五区黄| 国产精品久久久久影院老司 | 一本色道亚洲精品aⅴ| 国产精品一区二区视频| 久久精品国产在热久久| 蜜桃精品视频在线| 日本怡春院一区二区| 一区二区三区久久久| 亚洲私人黄色宅男| 自拍偷拍国产精品| 51午夜精品国产| 蜜臀久久久99精品久久久久久| 久久66热偷产精品| 精品伦理精品一区| 蜜桃一区二区三区在线观看| 亚洲精品成人精品456| 91香蕉视频在线| 久久免费午夜影院| 美女在线一区二区| 欧美日韩电影在线| 国内成人自拍视频| 欧美国产一区二区在线观看 | 成人一区二区在线观看| 亚洲一区二区av在线| aaa亚洲精品| 色网站国产精品| 国产精品一区二区久久不卡| 日韩成人伦理电影在线观看| 26uuu亚洲综合色| 在线视频欧美精品| 成人午夜免费电影| 国产美女精品人人做人人爽| 免费在线欧美视频| 日韩精品成人一区二区三区| 一区二区三区日韩| 一区二区高清免费观看影视大全| 欧美日韩国产经典色站一区二区三区| 欧美亚洲一区二区三区四区| 91福利国产精品| 欧美日韩一区视频| 制服丝袜中文字幕亚洲| 日韩视频一区二区三区在线播放 | 99久久久久久99| 欧美综合在线视频| 精品视频色一区| 日韩精品综合一本久道在线视频| 欧美高清视频不卡网| 欧美日韩高清在线| 国产亚洲短视频| 欧美日韩精品欧美日韩精品| 色婷婷精品久久二区二区蜜臀av| 99re66热这里只有精品3直播| 欧美亚洲另类激情小说| 日韩精品一区二区在线| 国产色91在线| 亚洲一区二区三区视频在线 | 精品亚洲欧美一区| 欧美精品日韩一本| 91在线播放网址| 奇米色777欧美一区二区| 亚洲综合色在线| 久久99精品国产.久久久久| 成人免费毛片嘿嘿连载视频| 99精品国产91久久久久久| 欧美酷刑日本凌虐凌虐| 337p日本欧洲亚洲大胆精品 | 99久久婷婷国产综合精品| 欧美在线看片a免费观看| 精品国产伦一区二区三区免费| 亚洲欧美欧美一区二区三区| 亚洲成人免费在线观看| 99久久精品国产导航| 久久久91精品国产一区二区精品| 五月天激情综合网| 欧美丝袜第三区| 一二三四区精品视频| 欧洲一区二区三区免费视频| 国产欧美一区二区三区鸳鸯浴| 免费久久精品视频| 欧美日韩三级视频| 日本视频一区二区三区| 不卡的看片网站| 亚洲国产欧美在线| 欧美性猛片xxxx免费看久爱| 亚洲精品老司机| 中文字幕一区二区三区在线观看| 国模无码大尺度一区二区三区| 久久午夜色播影院免费高清| 久久精品二区亚洲w码| 久久久久久久免费视频了| 日韩av一级片| 国产精品色一区二区三区| 9l国产精品久久久久麻豆| 床上的激情91.| 亚洲免费观看高清| 国产精品一区不卡| 亚洲妇熟xx妇色黄| 日韩情涩欧美日韩视频| 国产激情一区二区三区四区 | 在线观看精品一区| 中文在线免费一区三区高中清不卡| 成人av网址在线| 国产精品国产三级国产普通话蜜臀| av激情亚洲男人天堂| 一区二区欧美在线观看| 国产成人亚洲综合色影视| 亚洲电影一级片| 久久亚洲一区二区三区明星换脸 | 亚洲最色的网站| 日韩一级高清毛片| 一本到高清视频免费精品| 一本色道久久综合亚洲aⅴ蜜桃|