国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何在 ThinkPHP 中整合 Laravel Eloquent ORM

Labradors / 1275人閱讀

摘要:前言之前維護(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 了。

tips

TP 的數(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

相關(guān)文章

  • 利用 Laravel Resources 來整合第三方 API 數(shù)據(jù)

    摘要:對(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)換為...

    Jonathan Shieber 評(píng)論0 收藏0
  • 使用 Laravel 框架開發(fā)是什么樣的體驗(yàn)

    摘要:但也因?yàn)閼?yīng)有盡有使得框架的性能比其他高性能框架低了些,為此給了幾個(gè)解決方案路由緩存經(jīng)有關(guān)部門研究,路由緩存可有效加快訪問速度以上。有朋友說框架最重要的東西是路由,我倒認(rèn)為最重要的是框架中異于其他框架且能解決痛點(diǎn)的東西,如的。 showImg(https://segmentfault.com/img/remote/1460000006767764); 在程序界的遠(yuǎn)古時(shí)期,大神們手持鍵盤敲...

    Miracle_lihb 評(píng)論0 收藏0
  • laravel5.5手寫教程4Eloquent ORM分頁及軟刪除

    摘要:從而達(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的基本用法,今天...

    mindwind 評(píng)論0 收藏0
  • laravel 數(shù)據(jù)遷移與 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ù)遷移管...

    tulayang 評(píng)論0 收藏0
  • windows下laravel5.5手寫教程2路由Eloquent ORM操作(適合初學(xué)者)

    摘要:一路由目錄眾所周知,對(duì)于我們熟知的任何一款框架,例如路由系統(tǒng)都是極其重要的存在。文件用于定義界面的路由。定義在中的路由都是無狀態(tài)的,并且被分配了中間件組。生成的控制器為每個(gè)行為保留了方法,同時(shí)還包括了處理動(dòng)作和的聲明注釋。 一、路由目錄 眾所周知,對(duì)于我們熟知的任何一款PHP框架,例如TP、CI、YII、路由系統(tǒng)都是極其重要的存在。 對(duì)于laravel框架也一樣,對(duì)于數(shù)據(jù)庫的操作,無非...

    BlackFlagBin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<