CI3集成Laravel框架中的Eloquent ORM框架

2018-01-16  本文已影响0人  聆行

Eloquent ORM 框架git地址https://github.com/illuminate/database

参考文章https://lvwenhan.com/php/409.html#comment-10331     https://segmentfault.com/a/1190000002468218

Eloquent ORM使用文档https://docs.golaravel.com/docs/5.0/eloquent/

文采不好,乱写一通,嘿嘿

首先官网下载CI框架最新版本,此处为CI3.1.7,并安装composer

编辑CI根目录下composer.json,在require子项下添加 "illuminate/database": "*"项,然后在该目录下用composer update 等待完成,此时需要的依赖包和库都已备齐,下一步构建文件系统结构

在根目录(其他目录亦可)下新建一个文件内容为

use Illuminate\Database\Capsule\Manager as Capsule;

// Autoload 自动载入

require SET_BASEPATH.DIRECTORY_SEPARATOR.'vendor/autoload.php';

// Eloquent ORM

$capsule = new Capsule;

$capsule->addConnection([

'driver'    => 'mysql',

'host'      => ‘localhost:3306’,

'database'  => 'root',

'username'  => 'root',

'password'  => SET_DBPASSWORD,

'charset'  => 'utf8',

'collation' => 'utf8_unicode_ci',

'prefix'    => '',

]);

$capsule->bootEloquent();

然后一定要注意在index.php的require_once BASEPATH.'core/CodeIgniter.php';之前引入刚才的文件,这样composer的自动加载和ORM框架的初始化都完成了,

然后再application/model里定义model文件

比如User.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model

{

protected $table = 'Users';

}

在控制器内使用该model操作数据库

use App\Models\User;

class Welcome extends CI_Controller {

    public function index()

    {

        $user = User::find(1);

var_dump($user->name);

    }

}

通过浏览器访问发现找不到User类,因为没有使用CI默认的加载器,所以需要使用composer的自动加载机制,编辑根目录下的composer.json文件,添加映射,有好几种方式,参见composer文档

"autoload":{

"classmap": ["application/models"]

}

现在在访问页面成功读取数据库,ORM具体用法参见laravel官网说明

上一篇下一篇

猜你喜欢

热点阅读