一、数据模型作用

  相同功能代码不用重复写多次

二、创建方式

  在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表

    namespace app\demo\model;

    use think\Model;
class Ceshi extends Model{ }

三、控制器调用,查询

    namespace app\demo\controller;
//调用类继承
use think\Controller;
//调用模型
use app\demo\model\Ceshi;
class Test extends Controller{
public function test(){
//实例化模型
$p = new Ceshi;
//get id为1的数据,转为数组
dump($p->get(1)->toArray());
//类调用一条
$data = Ceshi::get(['pin'=>'zhangsan']);
dump($data->toArray());
//类调用多条
$data = Ceshi::all(['pin'=>'zhangsan']);
foreach($data as $k => $v){
dump($v->toArray());
}
}
}

  //find方法

//$data = $p->where('pin','zhangsan')->find();

四、增加数据

    namespace app\demo\controller;
//调用类继承
use think\Controller;
//调用模型
use app\demo\model\Ceshi;
class Test extends Controller{
public function test(){
//实例化模型
$p = new Ceshi;
//增加一条数据
//方法一:赋值,保存
$p->pin = 'yonghu1';
$p->name = '用户1';
$p->save();
//方法二:批量赋值
$p->data([
'pin'=>'yonghu2',
'name'=>'用户2'
]);
$p->save();
//只允许某些字段写入
$p->data([
'pin'=>'yonghu3',
'name'=>'用户3',
'pwd'=>'123'
]);
$p->allowField(['pin','name'])->save();
//过滤不是该表中有的字段,
allowField(true)
//增加多条数据
$list = [
['pin'=>'yonghu3','name'=>'用户3'],
['pin'=>'yonghu3','name'=>'用户3']
];
$p->saveAll($list);
}
}

  助手函数

    model

    区别仅在于实例化那里更改为如下

    $p = model('Ceshi')

五、更新

            //更新一条
//实例化模型
$p = new Ceshi;
$p->save([
'pin'=>'yonghu4',
'name'=>'用户4'
],['id'=>10]);
//更新多条
$list 添加多条那里,每一行写个id

六、删除

  静态方法:Ceshi::destroy([1,2,3])(括号内为主键的值)

  条件删除:Ceshi::destroy(['name'=>'1'])

七、模型层查找字段改变显示值

05-11 21:51
查看更多