12月3日:thinkphp模型与数据库相同的部分
创始人
2024-03-14 20:11:54

定义

定义一个模型类

模型调用的常用两种方法

 public function modelTest(){//第一种方法:静态方法$userModel = \app\index\model\User::get(1);dump($userModel); //返回类型为对象类型//第二种方法:实例化模型$userModel = new  \app\index\model\User;$userModel->name('admin');//dump($userModel);       //返回类型为对象类型}

官方文档中其他两种

模型调用的其他两种方法

 拓展

前后端页面中的success方法和api中的success方法不同

前后端中的sucess方法
api中的success方法

 不同点:

前后端页面显示的success方法success()

 /*** 操作成功跳转的快捷方法* @access protected* @param mixed  $msg    提示信息* @param string $url    跳转的 URL 地址* @param mixed  $data   返回的数据* @param int    $wait   跳转等待时间* @param array  $header 发送的 Header 信息* @return void* @throws HttpResponseException*/protected function success($msg = '', $url = null, $data = '', $wait = 3, array $header = []){}

api中的success()

/*** 操作成功返回的数据* @param string $msg    提示信息* @param mixed  $data   要返回的数据* @param int    $code   错误码,默认为1* @param string $type   输出类型* @param array  $header 发送的 Header 信息*/protected function success($msg = '', $data = null, $code = 1, $type = null, array $header = []){$this->result($msg, $data, $code, $type, $header);}

模型的初始化

模型同样支持初始化,与控制器的初始化不同的是,模型的初始化是重写Modelinitialize

第一种调用think目录下model中的initialize方法

 还可以使用init()静态方法

 protected static function init(){//自定义静态初始化方法}

与数据库操作基本相似,模型对应mvc中的m是用来操作数据库的

新增

实例化对象

public function modelTest1(){//使用实例化方法进行新增$userModel = new \app\index\model\User;$userModel->username = 'zhangsan';$userModel->save();dump($userModel->id);//获取自增id}

 静态方法

//新增数据public function modelTest1(){//静态方法$user = \app\index\model\User::create(['username'  =>  'thinkphp','email' =>  'thinkphp@qq.com']);dump($user->username);dump($user->email);dump($user->id); // 获取自增ID}

更新

我觉得官方文档比我描述的更仔细

更新 · ThinkPHP5.0完全开发手册 · 看云

其中需要注意的点是save()在模型处理中可用作更新也可用作保存

//save()更新数据与保存数据public function modelTest2(){//保存数据$userModel = new \app\index\model\User;$userModel->username = 'lisi';$userModel->save();//修改数据//其一:查找并更新$user = \app\index\model\User::get(2);$user->username     = 'thinkphp';$user->email    = 'thinkphp@qq.com';$user->save();//其二:直接更新数据$user = new User;// save方法第二个参数为更新条件$user->save(['name'  => 'thinkphp','email' => 'thinkphp@qq.com'],['id' => 1]);}

删除官方文档模型删除

删除模型

$user = User::get(1);
$user->delete();

根据id删除字段

User::destroy(1);
// 支持批量删除多个数据
User::destroy('1,2,3');
// 或者
User::destroy([1,2,3]);

查询

与数据库的查询相差无异,官方文档模型查询

// 获取某个用户的积分
User::where('id',10)->value('score');    //value():单条字符串类型数据,跟find()方法类似
// 获取某个列的所有值
User::where('status',1)->column('name');  //column():返回数据集为索引数组,跟select()相似  

聚合(模型聚合查询)

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...