摘要:前言之前維護(hù)的舊項(xiàng)目采用的,后面學(xué)習(xí)了后,覺得的功能沒有強(qiáng)大和方便,并想把里的用在里。好在的是獨(dú)立成包的,可以用于符合要求的其他系統(tǒng)中。整合要使用的是。
前言
之前維護(hù)的舊項(xiàng)目采用的 ThinkPHP 3.2,后面學(xué)習(xí)了 Laravel 后,覺得 TP 的 Model 功能沒有 Laravel 強(qiáng)大和方便,并想把 Laravel 里的 Eloquent 用在 TP 里。
好在 Laravel 的 ORM 是獨(dú)立成包的,可以用于符合要求的其他 PHP 系統(tǒng)中。
整合要使用的是 illuminate/database 。
安裝 illuminate/database
根據(jù)自己使用的 PHP 版本,通過 composer 安裝對(duì)應(yīng)的 illuminate/database 版本,例如
composer require illuminate/database:5.3.*
接入到 TP 中
在 ThinkPHPLibraryThinkThink.class.php 文件中的 start方法的最后一行的 App::run(); 上方添加如下代碼:
$capsule = new IlluminateDatabaseCapsuleManager; $capsule->addConnection([ "driver" => C("DB_TYPE"), "host" => C("DB_HOST"), "database" => C("DB_NAME"), "username" => C("DB_USER"), "password" => C("DB_PWD"), "charset" => C("DB_CHARSET"), "collation" => C("DB_COLLATION"), "prefix" => C("DB_PREFIX"), ]); $capsule->setAsGlobal(); $capsule->bootEloquent();
解決 E 方法沖突
illuminate/database 的 vendorilluminatesupporthelpers.php 方法中存在一個(gè)方法
/** * Escape HTML special characters in a string. * * @param IlluminateContractsSupportHtmlable|string $value * @return string */ function e($value) { if ($value instanceof Htmlable) { return $value->toHtml(); } return htmlspecialchars($value, ENT_QUOTES, "UTF-8", false); }
與 TP 的 E 方法沖突。
/** * 拋出異常處理 * @param string $msg 異常消息 * @param integer $code 異常代碼 默認(rèn)為0 * @throws ThinkException * @return void */ function E($msg, $code=0) { throw new ThinkException($msg, $code); }
我選擇注釋了 illuminate/database 的方法,搜索后發(fā)現(xiàn)沒有其他地方用到這個(gè)方法,故注釋。
完成后就可以愉快地使用 Laravel 的 ORM 來 coding 了。
tipsTP 的數(shù)據(jù)庫一般不會(huì)有 created_at 和 updated_at 字段,而 illuminate/database 會(huì)自動(dòng)維護(hù)這兩個(gè)字段,所以需要在創(chuàng)建的 Model 文件里,添加如下代碼
public $timestamps = false;
本文排版遵照 中文文案排版指北(簡體中文版)
Enjoy it !
如果覺得文章對(duì)你有用,可以請(qǐng)我喝杯咖啡~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30580.html
摘要:對(duì)于某些應(yīng)用程序,可能需要第三方服務(wù)或者來提取某些數(shù)據(jù),將該數(shù)據(jù)轉(zhuǎn)換為所需的響應(yīng),并將其傳送到客戶端界面。使用中間件來處理響應(yīng)數(shù)據(jù)可以確保數(shù)據(jù)庫的一致性。 showImg(https://segmentfault.com/img/remote/1460000018016736?w=1000&h=421); 對(duì)于某些應(yīng)用程序,可能需要第三方服務(wù)或者 API 來提取某些數(shù)據(jù),將該數(shù)據(jù)轉(zhuǎn)換為...
摘要:但也因?yàn)閼?yīng)有盡有使得框架的性能比其他高性能框架低了些,為此給了幾個(gè)解決方案路由緩存經(jīng)有關(guān)部門研究,路由緩存可有效加快訪問速度以上。有朋友說框架最重要的東西是路由,我倒認(rèn)為最重要的是框架中異于其他框架且能解決痛點(diǎn)的東西,如的。 showImg(https://segmentfault.com/img/remote/1460000006767764); 在程序界的遠(yuǎn)古時(shí)期,大神們手持鍵盤敲...
摘要:從而達(dá)到了軟刪除。不過,你可以通過在查詢中調(diào)用方法來強(qiáng)制查詢已被軟刪除的模型方法也可以被用在關(guān)聯(lián)查詢只取出軟刪除數(shù)據(jù)會(huì)只取出軟刪除數(shù)據(jù)恢復(fù)被軟刪除的模型有時(shí)候你可能希望取消刪除一個(gè)已被軟刪除的模型。 Laravel 有三寶,路由、容器和 Eloquent ORM,Eloquent ORM。我個(gè)人一直比較推薦于在實(shí)際操作中學(xué)習(xí),之前簡單了解了路由和Eloquent ORM的基本用法,今天...
摘要:同時(shí)使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團(tuán)隊(duì)進(jìn)行共享以及編輯。實(shí)際項(xiàng)目根據(jù)需求進(jìn)行記錄,以及選擇存儲(chǔ)方式。使用命令可以很方便的創(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ù)遷移管...
摘要:一路由目錄眾所周知,對(duì)于我們熟知的任何一款框架,例如路由系統(tǒng)都是極其重要的存在。文件用于定義界面的路由。定義在中的路由都是無狀態(tài)的,并且被分配了中間件組。生成的控制器為每個(gè)行為保留了方法,同時(shí)還包括了處理動(dòng)作和的聲明注釋。 一、路由目錄 眾所周知,對(duì)于我們熟知的任何一款PHP框架,例如TP、CI、YII、路由系統(tǒng)都是極其重要的存在。 對(duì)于laravel框架也一樣,對(duì)于數(shù)據(jù)庫的操作,無非...
閱讀 3172·2021-09-22 15:05
閱讀 2748·2019-08-30 15:56
閱讀 1054·2019-08-29 17:09
閱讀 792·2019-08-29 15:12
閱讀 2076·2019-08-26 11:55
閱讀 3037·2019-08-26 11:52
閱讀 3370·2019-08-26 10:29
閱讀 1374·2019-08-23 17:19