数据库与模型


Github : ThinkORM - 从ThinkPHP5.1独立出来的数据库ORM类库

安装

composer require topthink/think-orm

创建数据库配置

修改 Conf/Config.php 文件,在userConf方法中添加如下配置,这里仅列出连接mysql必须的配置项,完整配置项可以参考think-orm类库目录下的config.php文件

private function userConf()
  {
    return array(
      'database' => [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'swoole',
        // 用户名
        'username'        => 'root',
        // 密码
        'password'        => '123456',
        // 端口
        'hostport'        => '3306',
        // 数据库表前缀
        'prefix'          => 'db_',
        // 是否需要断线重连
        'break_reconnect' => true,
      ]
    );
  }

全局初始化DB类

Conf/Event.php的框架初始化完成事件中初始化数据库类配置,初始化完成后,即可在全局任意位置使用Db类以及使用模型类进行操作

function frameInitialized()
{
    // 获得数据库配置
    $dbConf = Config::getInstance()->getConf('database');
    // 全局初始化
    Db::setConfig($dbConf);
}

普通查询示例

ThinkPHP的使用方法一样,可以直接使用Db类进行数据库查询,支持链式操作

Db::table('user')
    ->data(['name'=>'thinkphp','email'=>'thinkphp@qq.com'])
    ->insert();    
Db::table('user')->find();
Db::table('user')
    ->where('id','>',10)
    ->order('id','desc')
    ->limit(10)
    ->select();
Db::table('user')
    ->where('id',10)
    ->update(['name'=>'test']);    
Db::table('user')
    ->where('id',10)
    ->delete();

模型查询示例

简单的查询模型无需改动任何代码即可直接应用在easySwoole中,只需要将原项目的模型文件复制过来,批量修改命名空间,对应为easySwoole的命名空间即可

同样的我们需要新建一个模型才能进行查询,模型直接继承自think\Model类,和ThinkPHP的定义方法是一样的

<?php

namespace App\Model;

use think\Model;

class Member extends Model
{
    protected $name = 'member';
}

定义完模型类后,即可进行模型的查询,同样也支持关联查询的定义

use App\Model\Member;

function index(){
    $member = Member::get(1);
    $member->username = 'test';
    $member->save();
    $this->response()->write('Ok');
}

更多模型用法可以参考5.1完全开发手册的模型章节

results matching ""

    No results matching ""