婷婷综合国产,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
    亚洲激情图片一区| 亚洲另类色综合网站| 狠狠久久亚洲欧美| 日韩美女一区二区三区| 婷婷丁香激情综合| 欧美日韩在线一区二区| 国产精品国产三级国产普通话蜜臀| 亚洲成在线观看| 精品福利视频一区二区三区| 国产精品影视在线| 日本电影欧美片| 亚洲人成影院在线观看| 欧美国产视频在线| 国产亚洲视频系列| 日韩一区二区三区电影在线观看| 91同城在线观看| 无码av中文一区二区三区桃花岛| 欧美无砖专区一中文字| 国产一区二区在线看| 香蕉加勒比综合久久| 在线欧美一区二区| 欧美mv和日韩mv国产网站| 亚洲综合自拍偷拍| 香蕉成人啪国产精品视频综合网| 欧美日韩国产中文| 理论片日本一区| 丁香啪啪综合成人亚洲小说| 国产精品亲子乱子伦xxxx裸| 欧美日韩极品在线观看一区| 国产精品看片你懂得| 午夜天堂影视香蕉久久| 欧美精品在线观看一区二区| 国产成人精品影视| 色拍拍在线精品视频8848| 欧美精品色综合| 波多野结衣中文一区| 看电影不卡的网站| 久久久精品国产免费观看同学| 精品亚洲成a人在线观看 | 蜜桃av一区二区三区电影| 色婷婷精品大在线视频| 久久综合精品国产一区二区三区| 久久久久国产免费免费 | 欧美大尺度电影在线| 久久国产精品免费| 日韩成人伦理电影在线观看| 亚洲第一成年网| 国产精品麻豆一区二区| 亚洲精品国久久99热| 欧美日韩欧美一区二区| 狠狠色丁香久久婷婷综合丁香| 亚洲美女屁股眼交3| 久久亚洲二区三区| 麻豆精品视频在线观看视频| 轻轻草成人在线| 国产网红主播福利一区二区| 97精品久久久午夜一区二区三区| 国产精品毛片大码女人| 6080yy午夜一二三区久久| 色婷婷综合久色| 精品一区二区三区影院在线午夜| 国产精品久久影院| 国产不卡视频一区二区三区| 成人性视频免费网站| 自拍偷拍国产亚洲| 亚洲国产精品人人做人人爽| 欧美一区二区女人| 国产一区美女在线| 色综合中文综合网| 精品免费视频.| 色屁屁一区二区| 色婷婷国产精品久久包臀| 国产精品视频一二三区 | 欧美丝袜第三区| 亚洲黄网站在线观看| 国产精品毛片久久久久久久| www.欧美日韩国产在线| 久久久精品影视| 99国产欧美另类久久久精品| 亚洲综合免费观看高清在线观看| 国产成人在线观看免费网站| 亚洲卡通欧美制服中文| 欧美综合一区二区三区| 国产一区二区调教| 亚洲日本在线视频观看| 欧美一区二区三区视频免费播放| 怡红院av一区二区三区| 91精品国产综合久久福利软件| 久久综合九色综合欧美亚洲| 蜜臀av在线播放一区二区三区| 午夜精品影院在线观看| 亚洲成人福利片| 一区二区三区免费网站| 欧美成人艳星乳罩| 国产成人亚洲精品狼色在线| 一本色道久久综合亚洲精品按摩 | www.亚洲人| 日本不卡一区二区| 国产日韩高清在线| 国产精品一区久久久久| 久久99国产精品久久99| a亚洲天堂av| 日本不卡视频在线观看| 日韩欧美二区三区| 国产无一区二区| 欧美xxx久久| 日本在线播放一区二区三区| 欧美成人一区二区三区在线观看| 本田岬高潮一区二区三区| 精品亚洲欧美一区| 99精品欧美一区| 国产精品欧美久久久久一区二区| 国产剧情一区二区| 欧美日韩一区二区三区高清| 精品一区二区av| 亚洲精品中文字幕乱码三区| 久久精品国产久精国产| 一区二区三区蜜桃| 欧美r级电影在线观看| 成人精品国产一区二区4080| 自拍偷拍国产精品| 91在线观看免费视频| 亚洲精品乱码久久久久| 国产成人午夜精品5599| 韩国女主播一区二区三区| 一区二区三区在线免费播放| 亚洲天堂中文字幕| 久久综合九色综合欧美98| 国产精品热久久久久夜色精品三区 | 日韩精品最新网址| 亚洲欧美日韩国产另类专区| 欧美性xxxxx极品少妇| 亚洲精品乱码久久久久| 国产高清视频一区| 久久久亚洲高清| 久久99精品一区二区三区 | 91片在线免费观看| 手机精品视频在线观看| 精品日产卡一卡二卡麻豆| 亚洲精品在线观看网站| 欧美情侣在线播放| 秋霞电影一区二区| 国产三级精品三级在线专区| 91免费国产在线| 日本不卡一二三区黄网| 欧美韩国日本一区| 在线视频欧美精品| 国产在线精品免费| 亚洲综合丝袜美腿| 久久伊99综合婷婷久久伊| 99综合影院在线| 蜜桃视频在线一区| 亚洲欧美激情小说另类| 欧美一区二区三级| 成人av在线电影| 日产国产高清一区二区三区| 久久精品视频一区二区三区| 欧美性大战久久| 粉嫩蜜臀av国产精品网站| 婷婷开心激情综合| 中文字幕中文字幕中文字幕亚洲无线| 91精品国产一区二区三区| 99久久久无码国产精品| 日韩国产欧美在线视频| 欧美中文字幕一区| 亚洲精选视频在线| 91色porny蝌蚪| 粉嫩av亚洲一区二区图片| 国产精品国模大尺度视频| 91视视频在线观看入口直接观看www| 欧美精品九九99久久| 国产免费久久精品| 国产精品成人免费在线| 日韩av中文在线观看| 国产精品白丝jk黑袜喷水| 欧美视频在线一区二区三区| 国产不卡免费视频| 国产精品你懂的在线| 国产在线播精品第三| 又紧又大又爽精品一区二区| 精品国产不卡一区二区三区| 91国偷自产一区二区三区成为亚洲经典| 久99久精品视频免费观看| 亚洲男人的天堂在线观看| 国产婷婷精品av在线| 精品奇米国产一区二区三区| 欧美日韩色综合| 91视频.com| 国产成人综合网站| 精油按摩中文字幕久久| 视频精品一区二区| 亚洲伦理在线精品| 国产婷婷色一区二区三区| 欧美成人r级一区二区三区| 4438x成人网最大色成网站| 日本高清不卡视频| 99久久er热在这里只有精品15| 国产成人精品aa毛片| 国产成人在线免费观看| 国产精品亚洲午夜一区二区三区|