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