PHP有很多ORM框架,人气最高的当属Laravel
的 Eloquent ORM
。ThinkPHP
是国内最受欢迎的PHP框架,也可以安装它的ORM框架。本文介绍两种ORM框架的安装,实际任选其一安装即可。
Eloquent ORM
安装Eloquent ORM
命令行进入项目根目录,输入命令:
composer require illuminate/database
添加数据库配置信息
打开conf/app.ini
,添加如下数据库配置信息:
database.database_type = "mysql"
database.database_name = "yaf"
database.server = "localhost"
database.username = "root"
database.password = "secret"
database.charset = "utf8"
database.port = 3306
配置EloquentORM
打开app/Bootstrap.php
文件,添加如下方法:
/**
* 初始化db
*/
public function _initDatabase(Yaf\Dispatcher $dispatcher) {
$config = Yaf\Registry::get('config');
//初始化Eloquent ORM
$dbconfig = [
'driver' => $config['database']->database_type, // 数据库类型
'host' => $config['database']->server, // 主机地址
'database' => $config['database']->database_name, // 数据库名
'username' => $config['database']->username, // 用户名
'password' => $config['database']->password, //密码
'charset' => $config['database']->charset,// 数据库编码
'collation' => 'utf8_general_ci',
'prefix' => '', // 数据库表前缀
];
$capsule = new Capsule();
$capsule->addConnection($dbconfig);
$capsule->setAsGlobal();
$capsule->bootEloquent();
}
使用Eloquent ORM
在app/models
文件夹下新建projects.php
,内容如下:
<?php
use Illuminate\Database\Eloquent\Model;
class ProjectsModel extends Model {
protected $primaryKey = 'id';
protected $table = 'projects';
}
在控制器中使用:
<?php
public function indexAction()
{
$project = ProjectsModel::where('id', '1')->first();
var_dump($project);
}
ThinkORM
安装ThinkORM
命令行进入项目根目录,输入命令:
composer require topthink/think-orm
添加数据库配置信息
打开conf/app.ini
,添加如下数据库配置信息:
database.database_type = "mysql"
database.database_name = "yaf"
database.server = "localhost"
database.username = "root"
database.password = "secret"
database.charset = "utf8"
database.port = 3306
配置ThinkORM
打开app/Bootstrap.php
文件,添加如下方法:
/**
* 初始化db
*/
public function _initDatabase(Yaf\Dispatcher $dispatcher) {
$config = Yaf\Registry::get('config');
//初始化thinkORM
$dbconfig = [
// 默认数据连接标识
'default' => 'mysql',
// 数据库连接信息
'connections' => [
'mysql' => [
'type' => $config['database']->database_type, // 数据库类型
'hostname' => $config['database']->server, // 主机地址
'username' => $config['database']->username, // 用户名
'password' => $config['database']->password, //密码
'port' => $config['database']->port, //端口
'database' => $config['database']->database_name, // 数据库名
'charset' => $config['database']->charset, // 数据库编码
'prefix' => '', // 数据库表前缀
'debug' => true, // 数据库调试模式
],
]
];
}
使用ThinkORM
在app/models
文件夹下新建projects.php
,内容如下:
<?php
use think\Model;
class ProjectsModel extends Model {
protected $pk = 'id'; //主键
protected $table = 'projects'; //表名
}
在控制器中使用:
<?php
public function indexAction()
{
$project = ProjectsModel::where('id', '1')->find();
var_dump($project);
}
更多用法可以查看ThinkORM的官方文档:
https://www.kancloud.cn/manual/think-orm/
提示Yaf\Loader::autoload()警告
配置好后,会提示如下错误:
Warning: Yaf\Loader::autoload(): Failed opening script ...: No such file or directory in...
只需在入口文件添加即可:
ini_set('yaf.use_spl_autoload','on');
支持,666
Call to a member function connect() on null
按照thinkorm安装配置,出现这个问题是怎么回事?
Call to a member function connect() on null。安装thinkorm出现这个问题怎么解决?
估计是数据库账号密码错了