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方法操作数据库事务将不起作用。