商务服务
Thinkphp6(7)模型学习与知识总结(三)
2024-11-14 21:45

Thinkphp6(7)模型学习与知识总结(三)

Thinkphp6(7)模型学习与知识总结(三)

继续学习模型的知识,上节课已学习到的知识有查询、软删除、自动时间戳。

今天来学习:

1.数据更新,

2. 获取器

3.修改器

◆数据更新

1.使用find()方法获取数据,然后通过save()方法保存修改,返回布尔值

2.通过 where()方法结合find()方法的查询条件获取的数据,进行修改

3.save()方法只会更新变化的数据,如果提交的修改数据没有变化,则不更新

更新时:如果要执行SQL函数更新,可以使用下面的方法

4.但如果你想强制更新数据,即使数据一样,那么可以使用 force()方法Suser->force()->save()

5. 字段过滤

默认情况下会过滤非数据表字段的数据,如果你通过外部提交赋值给模型,并且希望指定某些字段写入,可以使用:

$user = User::find(1);

// post数组中只有name和email字段会写入

$user->allowField(['name', 'email'])->save($_POST);

最佳用法是在传入模型数据之前就进行过滤,例如:

$user = User::find(1);

// post数组中只有name和email字段会写入

$data = Request::only(['name','email']);

$user->save($data);

6. 批量更新数据

可以使用saveAll方法批量更新数据,只需要在批量更新的数据中包含主键即可,

7. 直接更新(静态方法)

使用模型的静态update方法更新:

User::update(['name' => 'thinkphp'], ['id' => 1]);

模型的update方法返回模型的对象实例

如果你的第一个参数中包含主键数据,可以无需传入第二个参数(更新条件)

User::update(['name' => 'thinkphp', 'id' => 1]);

如果你需要只允许更新指定字段,可以使用

User::update(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com'], ['id' => 1], ['name']);

上面的代码只会更新name字段的数据。

====学习测试====

★测试1  

//学习数据更新方法

     public function update()

     {

     //先查询到第17条记录,再把其中的user_status更新为2

     $data=Users::find(17);

     $data->user_status=2;

     $res=$data->save();

     print_r($res);

     }

★测试2.成功把user_status自增加1

★测试3 静态方法update方法有三个参数

update([修改的数据可以是数组],【指定id】【指定可修改的字段】)

$res=$users=Users::update([

     'id'=> 15,

     'user_mobile'=> '13900000001'

     ]);

      print_r($res);

它返回是一个对象

◆模型的获取器

1.获取器的作用是对模型实例的数据做出自动处理:

2.一个获取器对应模型的一个特殊方法,该方法为 public;

3.方法名的命名規范为: get字段Attr():

4.举个例子,数据库表示状态 status字段采用的是数值.而页面上,我们需要输出 status字段希望是中文,就可以使用获取器:

====学习测试====

★测试:首先建立一个获取器代码

public function getStatusAttr($value)

    {

    $status=[0=>'管理员',1=>'在编',2=>'镇聘',3=>'学校管理员'];

    return $status[$value];

}

再查询出数据来

如果字段名是有下划线的FieldName要用驼峰转换

如模型中有了修改器,打印输出的是修改后的数据了,那我想输出原来的数据,怎么办呢:用getData方法

◆模型的修改器

模型修改器的作用,就是对模型设置对象的值进行处理比如,我们要新増数据的时候,对数据就行格式化、过滤、转换等处理模型

修改器的命名规则为: setFieldAttr,

我们要设置一个新増,规定邮箱的英文都必须大写,修改器如下

public function setEmallAttr(svalue){

return strtoupper(Svalue)}

.除了新增,会调用修改器,修改更新也会触发修改器

.模型修改器只对模型方法有效,调用数据库的方法是无效的,

比如-> insert();

    以上就是本篇文章【Thinkphp6(7)模型学习与知识总结(三)】的全部内容了,欢迎阅览 ! 文章地址:http://mdekt.bhha.com.cn/news/572.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 康宝晨资讯移动站 http://weazh.bhha.com.cn/ , 查看更多   
最新新闻
中国传统文化的词汇归纳汇总
关于中国传统文化的英语词汇,这里转载人民日报上100个中国传统文化名词此外还有100个,不过部分与上述图片中的有重合,这里仅供
十大油耗最低的SUV车型有哪些
以下是十大油耗最低的 SUV 车型1.UX 2.0L 混动综合油耗 6.35L/100km作为雷克萨斯级别最小的 SUV 车型其燃油经济性相当高国内两驱
地推业务推广公司 地推团队联系方式
前言:app拉新,地推,网推地推业务推广公司 地推团队联系方式-宣传视频地推入门门槛低,适合各个人群参与,而且工作时间灵活,因
Thinkphp6(7)模型学习与知识总结(三)
Thinkphp6(7)模型学习与知识总结(三)继续学习模型的知识,上节课已学习到的知识有查询、软删除、自动时间戳。今天来学习:1.
广东百度首页推广(广东百度首页推广公司)
大家好,今天小编关注到一个比较有意思的话题,就是关于广东百度首页推广的问题,于是小编就整理了4个相关介绍广东百度首页推广
抖音播放量怎么算收入?有哪些收入渠道?(抖音播放量怎么赚钱)
在抖音上面开通直播,其实也希望能积攒更多的播放量,但是大家是否清楚抖音播放量是怎么计算收入的呢?具体有哪些收入渠道来源呢?
3本书带来3个小故事——有关增长、营销、成长
产品工作中,当产品比较成熟,优化空间比较小的时候,如何用运营的视角去解决战术层面的问题?个人成长遇到低谷怎么办?本文作者
从用户体验的角度分析抖音
编辑导语:如今短视频行业非常火热,各种短视频平台蜂拥而至,字节跳动旗下的抖音短视频成为市面上的爆品,每个用户都可以成为创
【面试题周更新】6月24日~6月26日
第一题有三组关键词:“口袋富”和“脑袋富”、“做大蛋糕”和“分好蛋糕”、“量力而行”和“尽力而为”。请从三组关键词里选出
宁德时代曾毓群:真正的创新就是要创造“人无我有”
转自:上海证券报·中国证券网  上证报中国证券网讯(记者 俞立严)在日前举办的2024中国国际大学生创新大赛总决赛上,董事长
本企业新闻
推荐企业新闻