教練,我想寫 laravel ORM篇

風吹楓落van發表於2019-02-16

簡介

orm Object Relational Mapping
物件關係對映

laravel 中我認為最好用的莫過於 orm tp3.2 中也有類似的東西,但是使用起來總是感覺很費力,可能是先入為主的原因吧。

但是為了提升開發速度和減少使用 tp3.2 的不適感,現在來把 laravel 中的 orm 接入到 tp3.2 中

為什麼說是接入呢?
因為 laravel 的 orm 是可以單獨使用的詳見

illuminate/database
感謝元件化開發,感謝 composer

step 1

這裡 選擇合適的版本

composer require illuminate/database
// or for php 5.5.9
composer require illuminate/database:5.2.*

依然保持 index.php

require `vendor/autoload.php`;

step 2

Thinkphp/Library/Think/Think.class.php 中的 start() 方法中的 App::run() 之前新增
// ORM
$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();

step 3

為了可以載入 App/Models 下的檔案在 composer.json 中

"autoload": {
    "files": [
        "App/helpers.php"
    ],
    "psr-4": {
        "App\": "App"
    }
}

然後就可以想 laravel 中的 orm 一樣使用了

tip

這時是不能使用 paginate 的要想使用

composer require illuminate/pagination

同時注意選擇對應的版本

相關文章