Model
Model层称为数据模型层,负责技术层面上对数据信息的提取、存储、更新和删除等操作。PhalApi的数据库操作,主要是依赖NotORM
来完成。
数据库配置
数据库的配置文件为./config/dbs.php,默认使用的是MySQL数据库。servers选项用于配置数据库服务器相关信息,可以配置多组数据库实例,每组包括数据库的账号、密码、数据库名字等信息。不同的数据库实例,使用不同标识作为下标。
'servers' => array(
'db_master' => array( //服务器标记
'type' => 'mysql', //数据库类型,暂时只支持:mysql, sqlserver
'host' => '127.0.0.1', //数据库域名
'name' => 'phalapi', //数据库名字
'user' => 'root', //数据库用户名
'password' => '', //数据库密码
'port' => 3306, //数据库端口
'charset' => 'UTF8', //数据库字符集
),
),
新增Model类
建议一张表对应一个Model类。新增Model类,继承自PhalApi\Model\NotORMModel
类,并放置在App\Model
命名空间下。例如,对于数据库表tbl_user
:
CREATE TABLE `tbl_user` (
`id` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
`note` varchar(45) DEFAULT NULL,
`create_date` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
可以新增App\Model\User.php
文件,并在里面放置以下代码。
<?php
namespace App\Model;
use PhalApi\Model\NotORMModel as NotORM;
class User extends NotORM {
}
至此,便可得到一个基本的Model子类了。
使用NotORM进行数据库基本操作
在继承PhalApi\Model\NotORMModel
的子类中使用:$this->getORM()
获取NotORM实例,基本增删改查的操作如下:
$model = new App\Model\User();
// 查询
$row = $model->get(1);
$row = $model->get(1, 'id, name'); //取指定的字段
$row = $model->get(1, array('id', 'name')); //可以数组取指定要获取的字段
// 更新
$data = array('name' => 'test', 'update_time' => time());
$model->update(1, $data); //基于主键的快速更新
// 插入
$data = array('name' => 'phalapi');
$id = $model->insert($data);
//$id = $model->insert($data, 5); //如果是分表,可以通过第二个参数指定分表的参考ID
// 删除
$model->delete(1);