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

首頁 php框架 Laravel laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)

laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)

Jan 08, 2019 am 11:34 AM
laravel php

這篇文章帶給大家的內(nèi)容是關(guān)於laravel 資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有幫助。

資料庫可以說是後端開發(fā)最常用,也是最重要的部分。 laravel 提供了很實(shí)用的 Eloquent ORM 模型類,簡(jiǎn)單、直覺的與資料庫互動(dòng)。同時(shí)使用資料遷移管理資料庫,可以與團(tuán)隊(duì)進(jìn)行共享以及編輯。二者的更多介紹請(qǐng)查看下方的文件。
以下使用二者進(jìn)行範(fàn)例,需求是記錄使用者瀏覽記錄。 請(qǐng)勿將本範(fàn)例帶入實(shí)際專案中,本文僅作範(fàn)例。 實(shí)際項(xiàng)目依需求進(jìn)行記錄,以及選擇儲(chǔ)存方式。

建立資料表

第一步當(dāng)然是建立資料表了。使用 artisan 指令可以很方便的建立模型以及資料遷移。 php artisan make:model Models/BrowseLog -m,-m 參數(shù)在建立模型的同時(shí)也建立了資料遷移檔。執(zhí)行上述指令後,新增了 app/Models/BrowseLog.php 以及 database/migrations/{now_date}_create_browse_logs_table.php 兩個(gè)檔案。
接下來編輯 {now_date}_create_browse_logs_table.php 來建立資料表

/**
?????*?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('請(qǐng)求?url');
????????????$table->char('city_name',?10)->comment('根據(jù)?ip?獲取城市名稱');
????????????$table->timestamps();
????????});

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

程式碼如上,編輯完成後,執(zhí)行指令 php artisan migrate 會(huì)將所有未執(zhí)行遷移的資料表建立。如下

laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)

個(gè)人感覺,laravel 預(yù)設(shè)的資料型別值得商榷。例如 ipAddress(),資料格式為 varchar(45),其實(shí)可以使用 ip2long 轉(zhuǎn)換成 int 進(jìn)行儲(chǔ)存儲(chǔ)存。 timestamps() 也可以使用時(shí)間戳來儲(chǔ)存。當(dāng)然 laravel 也提供了 訪問器 & 修改器 方便維護(hù)。各位實(shí)際項(xiàng)目中自行選擇。

定義中間件

定義一個(gè)全域中間件,每個(gè)要求都會(huì)被執(zhí)行。執(zhí)行 php artisan make:middleware BrowseLog,建立了 app/Http/Middleware/BrowseLog.php ?檔案。
將建立好的中間件加入到app/Http/Kernel.php 中,如下

laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)

#記錄資料

最後在中間件中,記錄資料到資料庫即可,程式碼如下

/**
?????*?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);
????}

存取幾個(gè)連結(jié)後,去資料庫看下

laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)

資料寫入正常,本次的範(fàn)例就到此為止。

#

以上是laravel資料遷移與Eloquent ORM的詳細(xì)介紹(程式碼範(fàn)例)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

您的第一個(gè)PHP腳本:實(shí)用介紹 您的第一個(gè)PHP腳本:實(shí)用介紹 Jul 16, 2025 am 03:42 AM

如何開始編寫第一個(gè)PHP腳本?首先設(shè)置本地開發(fā)環(huán)境,安裝XAMPP/MAMP/LAMP,使用文本編輯器,了解服務(wù)器運(yùn)行原理。其次,創(chuàng)建一個(gè)名為hello.php的文件,輸入基本代碼並運(yùn)行測(cè)試。第三,學(xué)習(xí)混合使用PHP與HTML以實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容輸出。最後,注意常見錯(cuò)誤如缺少分號(hào)、引用問題及文件擴(kuò)展名錯(cuò)誤,並開啟錯(cuò)誤報(bào)告以便調(diào)試。

什麼是PHP,它是用什麼? 什麼是PHP,它是用什麼? Jul 16, 2025 am 03:45 AM

PHPisaserver-sidescriptinglanguageusedforwebdevelopment,especiallyfordynamicwebsitesandCMSplatformslikeWordPress.Itrunsontheserver,processesdata,interactswithdatabases,andsendsHTMLtobrowsers.Commonusesincludeuserauthentication,e-commerceplatforms,for

您如何處理PHP中的文件操作(閱讀/寫作)? 您如何處理PHP中的文件操作(閱讀/寫作)? Jul 16, 2025 am 03:48 AM

tohandlefileoperationsinphp,useApprepreprunctions andModes.1.toreadafile,usefile_get_contents()forsmallfilesorfgets()inaloopforline by line-line-processing.2.towriteToafile,usefile_put_cte_contents(usefile_contents)(

PHP 8安裝指南 PHP 8安裝指南 Jul 16, 2025 am 03:41 AM

在Ubuntu上安裝PHP8的步驟為:1.更新軟件包列表;2.安裝PHP8及基礎(chǔ)組件;3.檢查版本確認(rèn)安裝成功;4.按需安裝額外模塊。 Windows用戶可下載ZIP包並解壓,隨後修改配置文件、啟用擴(kuò)展並將路徑加入環(huán)境變量。 macOS用戶推薦使用Homebrew安裝,依次執(zhí)行添加tap、安裝PHP8、設(shè)置默認(rèn)版本及驗(yàn)證版本等步驟。不同系統(tǒng)下安裝方式雖有差異,但流程清晰,根據(jù)用途選對(duì)方法即可。

處理Laravel中的HTTP請(qǐng)求和響應(yīng)。 處理Laravel中的HTTP請(qǐng)求和響應(yīng)。 Jul 16, 2025 am 03:21 AM

在Laravel中處理HTTP請(qǐng)求和響應(yīng)的核心在於掌握請(qǐng)求數(shù)據(jù)獲取、響應(yīng)返回和文件上傳。 1.接收請(qǐng)求數(shù)據(jù)可通過類型提示注入Request實(shí)例並使用input()或魔術(shù)方法獲取字段,結(jié)合validate()或表單請(qǐng)求類進(jìn)行驗(yàn)證;2.返迴響應(yīng)支持字符串、視圖、JSON、帶狀態(tài)碼和頭部的響應(yīng)及重定向操作;3.處理文件上傳時(shí)需使用file()方法並結(jié)合store()存儲(chǔ)文件,上傳前應(yīng)驗(yàn)證文件類型和大小,存儲(chǔ)路徑可保存至數(shù)據(jù)庫。

高級(jí)PHP多行論技術(shù) 高級(jí)PHP多行論技術(shù) Jul 17, 2025 am 04:14 AM

UsemultilinecommentsinPHPforfunction/classdocumentation,codedebugging,andfileheaderswhileavoidingcommonpitfalls.First,documentfunctionsandclasseswith/*...*/toexplainpurpose,parameters,andreturnvalues,aidingreadabilityandenablingIDEintegration.Second,

如何在Laravel執(zhí)行請(qǐng)求驗(yàn)證? 如何在Laravel執(zhí)行請(qǐng)求驗(yàn)證? Jul 16, 2025 am 03:03 AM

在Laravel中進(jìn)行請(qǐng)求驗(yàn)證有兩種主要方法:控制器驗(yàn)證和表單請(qǐng)求類。 1.控制器中使用validate()方法適合簡(jiǎn)單場(chǎng)景,直接傳入規(guī)則並自動(dòng)返回錯(cuò)誤;2.使用FormRequest類適用於復(fù)雜或複用場(chǎng)景,通過Artisan創(chuàng)建類並在rules()中定義規(guī)則,實(shí)現(xiàn)代碼解耦與復(fù)用;3.可通過messages()自定義錯(cuò)誤提示,提升用戶體驗(yàn);4.通過attributes()定義字段別名,使錯(cuò)誤信息更友好;兩種方式各有優(yōu)劣,應(yīng)根據(jù)項(xiàng)目需求選擇合適方案。

PHP變量範(fàn)圍解釋了 PHP變量範(fàn)圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次並在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助於避免錯(cuò)誤並提升代碼穩(wěn)定性。

See all articles