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