前期准备

修改数据库表前缀

    // 数据库表前缀
    'prefix'          => 'ming_',

创建相关数据表
remmina_xiao_192.168.199.206_2019526-15122.052176

在编译器中查看已经连接好的数据库

2019-05-27-21-15-04----

模型定义

首先数据库的表为ming_table1
定义模型为Table1
定义模型

<?php
namespace app\index\model;


use think\Model;

class Table1 extends Model
{
}

书写查询

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        try {
            (new \app\index\model\Table1)->where('uid', 0)->select();
        } catch (DataNotFoundException $e) {
        } catch (ModelNotFoundException $e) {
        } catch (DbException $e) {
        }
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

模型字段

更改主键

<?php
namespace app\index\model;


use think\Model;

class Table1 extends Model
{
    protected $pk = 'uid';
}

获取主键为1的

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        $Table1 = Table1::find(1);
        var_dump($Table1);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

模型操作

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        $Table1 = Table1::select();
        var_dump($Table1);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

查询

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        $Table1 = Table1::find(1);
        var_dump($Table1['ming1']);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

赋值

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        $table1 = new Table1();
        $table1->ming1 = "354mi";
        $table1->ming2 = "eeee";
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

此时可以进行修改

添加数据

<?php

namespace app\index\controller;

use app\index\model\Table1;
use think\db\exception\DataNotFoundException;
use think\db\exception\ModelNotFoundException;
use think\exception\DbException;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{

    /**
     * 显示资源列表
     *
     * @return array|\think\Model
     */
    public function index()
    {
        $table = new Table1();
        $table->ming1 = "ming";
        $table->ming2 = "ming3";
        $table->uid = 34;
        $table->save();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'not fond 404';
    }
}

没有添加自增主键,所以需要添加

更新

剩下的几乎和hibernate一模一样

获取器

和mybatis中的typehadler一样
重写getStatusAttr方法

修改器

修改器同样等价于mybatis中的枚举类型

搜索器

封装查询

<?php
namespace app\model;

use think\Model;

class User extends Model 
{
    public function searchNameAttr($query, $value, $data)
    {
        $query->where('name','like', $value . '%');
    }
    
    public function searchCreateTimeAttr($query, $value, $data)
    {
        $query->whereBetweenTime('create_time', $value[0], $value[1]);
    }    
}

数据集

类似与java中的迭代器

自动时间戳

这个过

只读字段

只读,不删除

软删除

不是真正的删除

类型转换

模型输出

直接赋值给模板变量

模型事件

模型关联

等价于级联