CI3集成Laravel框架中的Eloquent ORM框架
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官网说明