tp3.2 使用laravel的Eloquent组件illuminate/database

首先安装所需组件:

composer require illuminate/database
composer require illuminate/events
composer require illuminate/container

注意:

使用时请确认项目的php版本,请确保环境默认php版本与项目的php版本一致,否则可能会出现安装的包与项目php版本不兼容的问题,可以使用以下代码安装:

项目php路径/php.exe composer.phar require illuminate/events

composer.phar官网自行下载

在引入composer autoload.php文件之后thinkphp文件之前加入如下代码初始化Eloquent:

use Illuminate\Container\Container;
use Illuminate\Database\Capsule\Manager;
use Illuminate\Events\Dispatcher;

$capsule = new Manager();

const CONFIG_PATH = '...';
$config = require CONFIG_PATH.'config.php';
$extConfigFileStr = isset($config['LOAD_EXT_CONFIG']) ? $config['LOAD_EXT_CONFIG'] : [];
$extConfigFiles = explode(',', $extConfigFileStr);
foreach ($extConfigFiles as $extConfigFile) {
    $config = array_merge($config, require CONFIG_PATH."$extConfigFile.php");
}

$capsule->addConnection(
    [
        'driver'    => $config['DB_TYPE'],
        'host'      => $config['DB_HOST'],
        'database'  => $config['DB_NAME'],
        'username'  => $config['DB_USER'],
        'password'  => $config['DB_PWD'],
        'charset'   => $config['DB_CHARSET'],
        'collation' => $config['DB_COLLATION'],
        'prefix'    => $config['DB_PREFIX']
    ]
);


$capsule->setEventDispatcher(new Dispatcher(new Container()));

$capsule->setAsGlobal();

$capsule->bootEloquent();

以上操作完成后即可使用以下两种方式进行数据库操作:

1、Illuminate\Database\Capsule\Manager(相当于DB,注意:DB在这里是不能使用的的, 因为没有经过初始化)

2、新建Model类进行操作

要使用事务处理可以调用Manager::connection()->transaction($callback, $attempts) 方法,需要注意的是$callback里面执行的数据库操作必须是上面两种操作方式的其中一种,使用其他的比如tp3.2的M方法操作数据库事务将不起作用。

发表回复

您的电子邮箱地址不会被公开。