摘要:一簡介的數(shù)據(jù)庫查詢構(gòu)造器提供了一個(gè)方便流暢的接口,用來創(chuàng)建及運(yùn)行數(shù)據(jù)庫查詢語句。的查詢構(gòu)造器使用參數(shù)綁定,來保護(hù)你的應(yīng)用程序免受注入的攻擊。和返回的是影響行數(shù),即失敗為,成功為刪除行數(shù)。
一、簡介相信很多人在學(xué)習(xí) Laravel 時(shí),會(huì)對 ORM 返回的數(shù)據(jù)類型產(chǎn)生混淆,如返回集合,?;蛘哒麛?shù)類型,下面將對增刪改查操作進(jìn)行一個(gè)小結(jié)。
Laravel 的數(shù)據(jù)庫查詢構(gòu)造器提供了一個(gè)方便、流暢的接口,用來創(chuàng)建及運(yùn)行數(shù)據(jù)庫查詢語句。它能用來執(zhí)行應(yīng)用程序中的大部分?jǐn)?shù)據(jù)庫操作,且能在所有被支持的數(shù)據(jù)庫系統(tǒng)中使用。
Laravel 的查詢構(gòu)造器使用 PDO 參數(shù)綁定,來保護(hù)你的應(yīng)用程序免受 SQL 注入的攻擊。在綁定傳入字符串前不需要清理它們。
二、查詢 1、從數(shù)據(jù)表中獲取所有的數(shù)據(jù)列1. 查詢中的 get 與 all 方法返回的是集合。
示例#
你可以使用 DB facade 的 table 方法開始查詢。這個(gè) table 方法針對查詢表返回一個(gè)查詢構(gòu)造器實(shí)例,允許你在查詢時(shí)鏈?zhǔn)秸{(diào)用更多約束,并使用 get方法獲取最終結(jié)果:
public function index() { $users = DB::table("users")->get(); return view("user.index", ["users" => $users]); }
get 方法會(huì)返回一個(gè) IlluminateSupportCollection 結(jié)果集,其中每個(gè)結(jié)果都是一個(gè) PHP StdClass 對象的實(shí)例。您可以通過訪問列中對象的屬性訪問每個(gè)列的值:
foreach ($users as $user) { echo $user->name; }
2.當(dāng)沒有數(shù)據(jù)時(shí),返回的是空集合。
集合可以在任何時(shí)候調(diào)用 toArray 方法,如果查詢到的結(jié)果為空,得到的是[],可以用 empty() 方法判斷是否有數(shù)據(jù)。
如果你只需要從數(shù)據(jù)表中獲取一行數(shù)據(jù),則可以使用 first 方法。這個(gè)方法將返回單個(gè) StdClass 對象:
$user = DB::table("users")->where("name", "John")->first(); echo $user->name;
如果你不需要一整行數(shù)據(jù),則可以使用 value 方法來從單條記錄中取出單個(gè)值。此方法將直接返回字段的值:
$email = DB::table("users")->where("name", "John")->value("email");
first 如果查不到數(shù)據(jù),返回的是 null,可用 empty 判斷。
三、插入數(shù)據(jù)添加數(shù)據(jù)的 create、insert 方法與查詢中的 first 方法,成功返回的是模。
創(chuàng)建、插入成功返回的是創(chuàng)建插入的那條數(shù)據(jù)的模型。
first如果查不到數(shù)據(jù),返回的是null,可用empty判斷。
創(chuàng)建和插入,如果失敗,會(huì)報(bào)錯(cuò)(當(dāng)傳入的字段與數(shù)據(jù)庫對不上時(shí))。
如果傳入的字段與數(shù)據(jù)庫字段一致,插入或創(chuàng)建失敗會(huì)返回false
判斷是否插入成功,用(! $result)判斷,(感嘆號和$result)間保留一個(gè)空格。判斷完成后才可調(diào)用toArray。
四、更新與刪除 1. update和delete,destroy方法,返回的是影響行數(shù)。在 laravel 中,update 方法永遠(yuǎn)返回大于1的行數(shù),因?yàn)?updated_at 字段總是會(huì)被更新。
如果要避免這種情況,請?jiān)谀P椭嘘P(guān)閉 laravel 的自動(dòng)維護(hù)字段的屬性。
2. destory和delete返回的是影響行數(shù),即失敗為0,成功為刪除行數(shù)。相關(guān)文章:
Laravel 的一點(diǎn)經(jīng)驗(yàn)總結(jié)
深入理解 Laravel Eloquent(三)——模型間關(guān)系(關(guān)聯(lián))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22654.html
摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來大部分測試都是針對層面的單元測試。在我了解的過程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開始開發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...
摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來大部分測試都是針對層面的單元測試。在我了解的過程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開始開發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...
摘要:一路由目錄眾所周知,對于我們熟知的任何一款框架,例如路由系統(tǒng)都是極其重要的存在。文件用于定義界面的路由。定義在中的路由都是無狀態(tài)的,并且被分配了中間件組。生成的控制器為每個(gè)行為保留了方法,同時(shí)還包括了處理動(dòng)作和的聲明注釋。 一、路由目錄 眾所周知,對于我們熟知的任何一款PHP框架,例如TP、CI、YII、路由系統(tǒng)都是極其重要的存在。 對于laravel框架也一樣,對于數(shù)據(jù)庫的操作,無非...
摘要:同時(shí)使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團(tuán)隊(duì)進(jìn)行共享以及編輯。實(shí)際項(xiàng)目根據(jù)需求進(jìn)行記錄,以及選擇存儲方式。使用命令可以很方便的創(chuàng)建模型以及數(shù)據(jù)遷移。,參數(shù)在創(chuàng)建模型的同時(shí)也創(chuàng)建了數(shù)據(jù)遷移文件。參考資料數(shù)據(jù)庫操作遷移快速入門。 導(dǎo)語 數(shù)據(jù)庫可以說是后端開發(fā)最常用,也是最重要的部分。laravel 提供了很實(shí)用的 Eloquent ORM 模型類,簡單、直觀的與數(shù)據(jù)庫進(jìn)行交互。同時(shí)使用數(shù)據(jù)遷移管...
摘要:判斷是否存在構(gòu)造函數(shù),不存在直接實(shí)例化,存在則通過來獲取輸入函數(shù),并有相應(yīng)的方法解決依賴參數(shù)問題,實(shí)現(xiàn)依賴注入。 Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(一) 第一章 入口文件 請求訪問的入口文件,主要完成幾部分工作,分別是: 自動(dòng)加載函數(shù)的添加 服務(wù)器實(shí)例化與服務(wù)注冊 路由加載 請求實(shí)例化與路由分發(fā) 相應(yīng)生成與發(fā)送 其中,自動(dòng)加載函數(shù)用于包含引用文件,改文件是composer...
閱讀 4466·2021-11-19 09:59
閱讀 3397·2021-10-12 10:12
閱讀 2684·2021-09-22 15:25
閱讀 3377·2019-08-30 15:55
閱讀 1222·2019-08-29 11:27
閱讀 1502·2019-08-28 18:06
閱讀 2787·2019-08-26 13:41
閱讀 2593·2019-08-26 13:41