一、数据模型作用
相同功能代码不用重复写多次
二、创建方式
在模块下建立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'])
七、模型层查找字段改变显示值