美文网首页
CI3集成Laravel框架中的Eloquent ORM框架

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

作者: 聆行 | 来源:发表于2018-01-16 16:26 被阅读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官网说明

    相关文章

      网友评论

          本文标题:CI3集成Laravel框架中的Eloquent ORM框架

          本文链接:https://www.haomeiwen.com/subject/tznsoxtx.html