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);

results matching ""

    No results matching ""