国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php框架 Laravel laravel數(shù)據(jù)遷移與Eloquent ORM的詳細介紹(代碼示例)

laravel數(shù)據(jù)遷移與Eloquent ORM的詳細介紹(代碼示例)

Jan 08, 2019 am 11:34 AM
laravel php

本篇文章給大家?guī)淼膬?nèi)容是關于laravel 數(shù)據(jù)遷移與Eloquent ORM的詳細介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

數(shù)據(jù)庫可以說是后端開發(fā)最常用,也是最重要的部分。laravel 提供了很實用的 Eloquent ORM 模型類,簡單、直觀的與數(shù)據(jù)庫進行交互。同時使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團隊進行共享以及編輯。二者的更多介紹請查看下方的文檔。
以下使用二者進行示例,需求是記錄用戶瀏覽記錄。請勿將本示例帶入實際項目中,本文僅作示例。實際項目根據(jù)需求進行記錄,以及選擇存儲方式。

創(chuàng)建數(shù)據(jù)表

第一步當然是創(chuàng)建數(shù)據(jù)表了。使用 artisan 命令可以很方便的創(chuàng)建模型以及數(shù)據(jù)遷移。php artisan make:model Models/BrowseLog -m,-m 參數(shù)在創(chuàng)建模型的同時也創(chuàng)建了數(shù)據(jù)遷移文件。執(zhí)行過上述命令后,新增了 app/Models/BrowseLog.php 以及 database/migrations/{now_date}_create_browse_logs_table.php 兩個文件。
接下來編輯 {now_date}_create_browse_logs_table.php 來創(chuàng)建數(shù)據(jù)表

/**
?????*?Run?the?migrations.
?????*
?????*?@return?void
?????*/
????public?function?up()
????{
????????Schema::create('browse_logs',?function?(Blueprint?$table)?{
????????????$table->increments('id');
????????????$table->ipAddress('ip_addr')->comment('ip?地址');
????????????$table->string('request_url',?20)->comment('請求?url');
????????????$table->char('city_name',?10)->comment('根據(jù)?ip?獲取城市名稱');
????????????$table->timestamps();
????????});

????????DB::statement("ALTER?TABLE?`browse_logs`?comment'瀏覽記錄表'");?//?表注釋
????}

代碼如上,編輯完成后,執(zhí)行命令 php artisan migrate 會將所有未執(zhí)行遷移的數(shù)據(jù)表創(chuàng)建。如下

8701366-19834c241b84edd4.png

個人感覺,laravel 默認的數(shù)據(jù)類型值得商榷。例如 ipAddress(),數(shù)據(jù)格式為 varchar(45),其實可以使用 ip2long 轉(zhuǎn)換成 int 進行存儲。timestamps() 也可以使用時間戳進行存儲。當然 laravel 也提供了 訪問器 & 修改器 方便維護。各位實際項目中自行選擇。

定義中間件

定義一個全局中間件,每一次請求都會被執(zhí)行。執(zhí)行 php artisan make:middleware BrowseLog,創(chuàng)建了 app/Http/Middleware/BrowseLog.php ?文件。
將創(chuàng)建好的中間件添加到 app/Http/Kernel.php 中,如下

8701366-19834c241b84edd4.png

記錄數(shù)據(jù)

最后在中間件中,記錄數(shù)據(jù)到數(shù)據(jù)庫即可,代碼如下

/**
?????*?Handle?an?incoming?request.
?????*
?????*?@param??\Illuminate\Http\Request??$request
?????*?@param??\Closure??$next
?????*?@return?mixed
?????*/
????public?function?handle($request,?Closure?$next)
????{
????????$log?=?new?\App\Models\BrowseLog();

????????$log->ip_addr?=?$request->getClientIp();
????????$log->request_url?=?$request->path();
????????$log->city_name?=?get_city_by_ip();

????????$log->save();

????????return?$next($request);
????}

訪問幾個鏈接后,去數(shù)據(jù)庫看下

8701366-64df96b2a1bf0cd6.png

數(shù)據(jù)寫入正常,本次的示例就到此為止。

以上是laravel數(shù)據(jù)遷移與Eloquent ORM的詳細介紹(代碼示例)的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
PHP中的對象關聯(lián)映射(ORM)性能調(diào)整 PHP中的對象關聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫查詢次數(shù);2.僅選擇所需字段,避免加載完整實體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實體生命周期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫索引存在并分析生成的SQL語句以避免低效查詢;6.在無需跟蹤變更的場景下禁用自動變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當優(yōu)化,在保持開發(fā)效率的同時確保應用性能。

VSCODE設置。JSON位置 VSCODE設置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級或工作區(qū)級路徑,用于自定義VSCode設置。1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級路徑:項目根目錄下的.vscode/settings

在PHP中構(gòu)建不變的物體,并具有可讀的屬性 在PHP中構(gòu)建不變的物體,并具有可讀的屬性 Jul 30, 2025 am 05:40 AM

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

如何在Laravel中實施推薦系統(tǒng)? 如何在Laravel中實施推薦系統(tǒng)? Aug 02, 2025 am 06:55 AM

創(chuàng)建referrals表記錄推薦關系,包含推薦人、被推薦人、推薦碼及使用時間;2.在User模型中定義belongsToMany和hasMany關系以管理推薦數(shù)據(jù);3.用戶注冊時生成唯一推薦碼(可通過模型事件實現(xiàn));4.注冊時通過查詢參數(shù)捕獲推薦碼,驗證后建立推薦關系并防止自薦;5.當被推薦用戶完成指定行為(如下單)時觸發(fā)獎勵機制;6.生成可分享的推薦鏈接,可使用Laravel簽名URL增強安全性;7.在儀表板展示推薦統(tǒng)計信息,如總推薦數(shù)和已轉(zhuǎn)化數(shù);必須確保數(shù)據(jù)庫約束、會話或Cookie持久化、

CSS暗模式切換示例 CSS暗模式切換示例 Jul 30, 2025 am 05:28 AM

首先通過JavaScript獲取用戶系統(tǒng)偏好和本地存儲的主題設置,初始化頁面主題;1.HTML結(jié)構(gòu)包含一個按鈕用于觸發(fā)主題切換;2.CSS使用:root定義亮色主題變量,.dark-mode類定義暗色主題變量,并通過var()應用這些變量;3.JavaScript檢測prefers-color-scheme并讀取localStorage決定初始主題;4.點擊按鈕時切換html元素上的dark-mode類,并將當前狀態(tài)保存至localStorage;5.所有顏色變化均帶有0.3秒過渡動畫,提升用戶

Java性能優(yōu)化和分析技術 Java性能優(yōu)化和分析技術 Jul 31, 2025 am 03:58 AM

使用性能分析工具定位瓶頸,開發(fā)測試階段用VisualVM或JProfiler,生產(chǎn)環(huán)境優(yōu)先Async-Profiler;2.減少對象創(chuàng)建,復用對象、用StringBuilder替代字符串拼接、選擇合適GC策略;3.優(yōu)化集合使用,根據(jù)場景選型并預設初始容量;4.優(yōu)化并發(fā),使用并發(fā)集合、減少鎖粒度、合理設置線程池;5.調(diào)優(yōu)JVM參數(shù),設置合理堆大小和低延遲垃圾回收器并啟用GC日志;6.代碼層面避免反射、用基本類型替代包裝類、延遲初始化、使用final和static;7.持續(xù)性能測試與監(jiān)控,結(jié)合JMH

如何使用Laravel構(gòu)建REST API? 如何使用Laravel構(gòu)建REST API? Jul 30, 2025 am 03:41 AM

創(chuàng)建新Laravel項目并啟動服務;2.生成模型、遷移和控制器并運行遷移;3.在routes/api.php中定義RESTful路由;4.在PostController中實現(xiàn)增刪改查方法并返回JSON響應;5.使用Postman或curl測試API功能;6.可選地通過Sanctum添加API認證;最終得到一個結(jié)構(gòu)清晰、功能完整且可擴展的LaravelRESTAPI,適用于實際應用。

拉拉維爾(Laravel)中有什么雄辯的ORM? 拉拉維爾(Laravel)中有什么雄辯的ORM? Jul 29, 2025 am 03:50 AM

EloquentORM是Laravel的內(nèi)置對象關系映射系統(tǒng),它通過PHP語法而非原生SQL操作數(shù)據(jù)庫,使代碼更簡潔易維護;1.每個數(shù)據(jù)表對應一個模型類,每條記錄作為模型實例存在;2.采用主動記錄模式,模型實例可自行保存或更新;3.支持批量賦值,需在模型中定義$fillable屬性以確保安全;4.提供強大的關系支持,如一對一、一對多、多對多等,通過方法調(diào)用即可訪問關聯(lián)數(shù)據(jù);5.集成查詢構(gòu)造器,可鏈式調(diào)用where、orderBy等方法構(gòu)建查詢;6.支持訪問器和修改器,可在獲取或設置屬性時格式化數(shù)

See all articles