在 Laravel 框架之外使用数据库查询构建器及 Eloquent ORM

php中文网
发布: 2016-06-20 12:40:20
原创
1296人浏览过

在laravel 框架核心代码的 illuminate/database包中,有一个 capsule目录, 该目录下有一个 manager.php文件,如果要在 laravel 之外使用 illuminate database 组件,就要通过该文件实现。以yii2 为例,我们首先在项目根目录下运行使用如下 composer 命令安装该依赖包:

composer require illuminate/database ~5.1
登录后复制

这样在 vendor目录下现在就有了 illuminate/database包,接下来我们修改入口文件 index.php如下:

<?php// comment out the following two lines when deployed to productiondefined('YII_DEBUG') or define('YII_DEBUG', true);defined('YII_ENV') or define('YII_ENV', 'dev');require(__DIR__ . '/../vendor/autoload.php');require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');//引入加载 Eloquent ORM 的启动文件require((__DIR__.'/../system/eloquent/Start.php');$config = require(__DIR__ . '/../config/web.php');(new yii\web\Application($config))->run();
登录后复制

然后我们到项目根目录下创建 system/eloquent/Start.php,编辑文件内容如下:

<?php$database = [    'driver' => 'mysql',    'host' => DB_HOST,    'database' => DB_NAME,    'username' => DB_USER,    'password' => DB_PASSWORD,    'charset' => 'utf8',    'collation' => 'utf8_unicode_ci',    'prefix' => DB_TABLEPREFIX,];use Illuminate\Container\Container;use Illuminate\Database\Capsule\Manager as Capsule;$capsule = new Capsule;// 创建链接$capsule->addConnection($database);// 设置全局静态可访问$capsule->setAsGlobal();// 启动Eloquent$capsule->bootEloquent();
登录后复制

最后,我们可以到 models目录下创建模型类如下:

<?phpnamespace app\models;use Illuminate\Database\Eloquent\Model;class User extends Model{    protected $table = 'user';}
登录后复制

这样我们就可以在代码中以 Eloquent 模型类的语法使用 User 模型了。关于 Eloquent ORM 的使用方法,可参考Eloquent ORM 文档。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号