TP5 模型修改器和自动完成

thinkPHP5模型中的修改器和自动完成 一、修改器 实际开发过程中,一些字段在存储到表中时需要做些修改,如用户注册时填写的密码在表中存储时需要加密,修改器因此产生。 修改器同获取器类似,需要写在模型中,其命名规则为set + 字段名(按驼峰法) + Attr。 实例:添加用户时,用户的密码需要加密 创建用户表 CREATE TABLE `tp_user` ( `id` int(10) un... 阅读详情

例如一个密码字段, 需要md5加密, 这时候, 可以用修改器, 来实现.

//修改器
public function setPasswordAttr($val)
{
    return md5($val);
}

这是的 set 和 Attr 是固定的, 中间的 Password 是字段名, 第一个字母大写.

如果还有第二个参数, 则是整个数据, 如下, 是这个数组的数据.

$res = User::create([
    'username' => 'imooc',
    'sex'      => 0,
    'email'    => 'imooc@qq.com',
    'password' => 'imooc',
    'num'      => 1
], true);

接下来演示一下, 接受第二个参数的情况

//修改器
public function setPasswordAttr($val, $data)
{
    return $val . $data['email'];
    //return md5($val);
}

自动完成. 有些字段, 例如时间字段, 希望我们在处理的数据的时候,可以自动完成.可以用如下方法

$auto 是在新增和更新的时候,都会触发, $insert 是在新增的时候会触发. $update是在更新的时候触发.

//自动完成
protected $auto = [
    'time'
];
// 自动完成, 只在新增的时候有效
protected $insert = [
    'time_insert'
];
// 自动完成, 只在更新的时候有效
protected $update = [
    'time_update'
];

public function setTimeAttr()
{
    return time();
}

public function setTimeInsertAttr()
{
    return time();
}

public function setTimeUpdateAttr()
{
    return time();
}

 

tp5模型修改器不起作用 使用thinkphp5.0框架开发个人网站漫岛时,在模型中进行数据库的写入时发现修改器并没有起到任何作用,阅读官方文档也没找到对应说明,最后在评论区找到解决方案,因此记录: 开始我在模型存储数据时使用的如下方式: public function saveTag() { $a = new Tag; $a->data(["label"=>["标签1","标签2","标签3"]]); ... 阅读详情

相关推荐

tp5--模型

thinkphp5.0-模型 新版的模型进行了重构,更加对象化操作,包括关联模型的重构,主要特性包括: 完全对象式访问 支持静态调用(查询) 支持读取器/修改器 时间戳字段自动写入 对象/数组访问 JSON序列化 模型事件触发 命名范围 类型自动转换 数据验证和自动完成 关联查询/操作 关联预载入 请不要以3.2版本的模型思维来使用5.0的模型,充分理解和掌握新版模 型的用法对于熟练掌握TP...

xs_优快云_1202的博客 600

TP模型一对一关联,获取器和修改器,中间件

为了获取的值直接是我们想要的值,无需二次转换。添加入库时将数据转换入库。

2301_76625070的博客 312

TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】

主要介绍了TP5框架model常见操作,结合实例形式总结分析了thinkPHP5框架增删改查、聚合、获取器、修改器、时间戳、软删除等常见操作技巧,需要的朋友可以参考下

tp5获取器的用法。

1.命名规则 get + 属性名的驼峰命名+ Attr ------>在相应的model中创建方法 例如: 1 protected function getSexAttr($value) { 2     $text = [1 => '男', 2 => '女', 3 => '保密']; 3     return $text[$value];...

weixin_30588907的博客 325

光电振荡器(OEO):从原理到应用,解锁高频微波信号新纪元

本文深入解析了光电振荡器(OEO)的核心原理与前沿应用。OEO通过巧妙的光-电-光转换机制,利用光学谐振腔产生高频、高纯度、低相位噪声的微波信号,有效突破了传统电子电路的频率瓶颈。文章详细拆解了其工作流程,并探讨了在雷达系统、高速光通信及精密测量等领域的硬核应用价值。

weixin_29231027的博客 365

TI AWR2944毫米波雷达开发板开箱:用官方Demo快速上手3D点云与热图生成

本文详细介绍了TI AWR2944毫米波雷达开发板的开箱与实战应用,包括硬件准备、软件开发环境搭建、Demo固件刷写与配置、实时可视化与数据解析等全流程指南。通过官方Demo快速上手3D点云与热图生成,帮助开发者高效掌握毫米波雷达技术在工业检测、智能交通等领域的应用。

weixin_42627853的博客 308

thinkphp5第30课:模型-修改器

修改器 修改器的作用是可以在数据赋值的时候自动进行转换处理 案例 学生表有一个字段:password,这个字段值需要经过md5加密处理 新增记录时,要把表单输入的密码如:123456转换成md5加密后的数据 定义Student模型时,可以写一个修改器 <?php namespace app\index\model; use think\Model; class Stude...

李书明(石家庄)的专栏 529

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

TP5模型修改器和读取器

(PS:文章内源码均来自官方文档) 现在所有的项目都是会把时间存成时间戳格式,取出的时候还要转换 这时候就可以应用到读取器这个功能。 读取器的命名规则是:驼峰 ,get+字段名+Attr   例如:getBirthdayAttr; 比如我要获取生日。那么可以如下操作: <?php namespace app\index\model; use think\Mode

whulovely的博客 3418

【数据分析/商业分析】面试题整理——SQL专题

数据分析\商业分析—面试题整理 自己总结的SQL类的面试题 文章目录数据分析\商业分析—面试题整理1.新增用户2.活跃用户数量3.连续登录4.次(n)日留存5.每个科目下分数最高的两名学生

awater_17的博客 1859

Camunda 7.x 系列【67】实战篇之撤销流程

撤销流程 即撤销当前已发起的流程实例。这是一个常见的需求,Camunda本身不提供直接的方法来撤销正在执行的流程,需要自定义处理逻辑。

记录知识、锤炼自我 1376

Tp5模型修改器

    TP5在3.2的基础上新增加了模型修改器,个人感觉类似于原有的前置(后置)操作,区别在于,模型修改器精确到了字段上。形式:        set+字段+Attr($val)          get+字段+Attr($val)   setPasswordAttr()    字段首字母必须大写,如果字段中有下划线(u_pwd),应写setUPwd()...

ming654987的博客 1528

锁的艺术:Java并发中的常用锁策略与实践

对java锁相关内容进行整理分析:乐观锁 VS 悲观锁+自旋锁 VS 适应性自旋锁+无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁+公平锁 VS 非公平锁+可重入锁 VS 非可重入锁+独享锁 VS 共享锁

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 171万+

【ThinkPHP】ThinkPHP5 读取器、修改器、类型转换、自动完成

来源:我的博客站 OceanicKang |《【ThinkPHP】ThinkPHP5 读取器、修改器、类型转换、自动完成》 上一篇:《【ThinkPHP】ThinkPHP5 数据模型和关联》 读取器 命名规范:get + 属性名的驼峰命名 + Attr 程序在读取属性时,自动检测是否存在读取器方法 修改器(写入器) 命名规范:set + 属性名的驼峰命名 + Attr 自动类型转换 配置自动类型...

Oscaner 1407

MIKE水动力笔记18_如何将dfsu流场模拟结果的数据导出成txt文件

MIKE的模拟结果dfsu文件的数据是可以导出的,导出格式为xyz,我们也可以将其改后缀改为txt文本格式,其中包含了某一时刻下所有网格坐标点的数据。

晏长街的博客 4407

OmniDrive(3):逐行代码详解

模型效果: 端到端联合规划与推理 接下来,简单介绍下训练的配置 1.1 模型配置 模型基于sparse query based的3D Bev感知框架StreamPetr ,用query来编码动态目标(如车辆、行人)和静态地图元素(如车道线)。(1) tran、test和val数据配置 指定真值的文件路径: ann_file 指定输出处理的pipeline: 训练使用, test 和val使用 指定是否需要时序训练seq_mode (2)数据处理pipeline 自定义的Dataset 通过类实现,训

@bangbang的博客 719

TP5之model

使用model 查询数据,添加数据,修改数据,删除数据 聚合操作 获取器,修改器 自动添加时间戳(创建时间,修改时间) 软删除 1、使用model查询数据 $res = User::get(1); //获取主键为1的数据,得到的是一个对象 $res = $res->toArray(); //将对象转化为数组 dump($res->name); //获取 $r...

Anwug的博客 2152

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

tp5修改器

修改器 修改器的作用是可以在数据赋值的时候自动进行转换处理 class User extends Model { public function setNameAttr($value) { return strtolower($value); } } 如下代码实际保存到数据库中的时候会转为小写 $user = new User(); $user->...

weixin_43987956的博客 644

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Thinkphp5.0 的使用模型Model的获取器与修改器

Thinkphp5.0 的使用模型Model的获取器、修改器、软删除 一、获取器 在model中使用 get+字段名+Attr,可以修改字段的返回值。 数据库中性别保存为,0未知、1男、2女,查询时返回汉字: model: //将性别的012修改为未知、男。女返回 public function getSexAttr($val){ ...

454

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

tp3与tp5的区别 以及 tp5与laravel的区别

Tp3 和 Tp5之间的区别 Tp5版本和Tp3的差异较大的,它们的主要区别: 1.URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式: 主要改进有以下几点: 1.增加路由变量规则、 2.增加组合变量支持、 3.增加资源路由、 4.增加路由分组、 5.增加闭包定义支持、 6.增加MISS路由定义、 7.支持URL路由...

珞羽飘凌个人博客 2853

TP5学习(七):模型

一、定义 定义一个User模型类: namespace app\index\model; use think\Model; class User extends Model { } 默认主键为自动识别,如果需要指定,可以设置属性: namespace app\index\model; use think\Model; class User extends Model { prot...

码农Robin的博客 3427

Tp3 和 Tp5之间的区别

5.0版本和之前版本的差异较大,以下是从几个方面来解释它们的主要区别: 1.URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规则(正则定义)的方式: 主要改进有以下几点: 1.增加路由变量规则、 2.增加组合变量支持、 3.增加资源路由、 4.增加路由分组、 5.增加闭包定义支持、 6.增加MISS路由定义、 7.支...

weixin_43681591的博客 2237

thinkphp6.0模型篇之模型的获取器和修改器

一、模型获取器 1、获取器的作用是对模型实例的数据做出自动处理 2、一个获取器对应模型的一个特殊方法,改方法为public 3、方法名的命名规范:getFieldAttr(); 4、数据库表示状态status字段采用的是数值,而在页面上,我们需要输出status字段希望是中文,就可以使用获取器 5、在Studnets模型端,创建一个对外的方法 public function getStatusAt...

小小神的博客 2818

tp5 (修改器)

                                                   修改器作用:修改器的作用是可以在数据赋值的时候自动进行转换处理修改器方法的命名规范是:set + 属性名的驼峰命名+ Attrclass User extends Model { public function setNameAttr($value) { return strtolower...

坚持 2961

thinkphp5第31课:数据自动完成

数据自动完成 数据自动完成指在不需要手动赋值的情况下对字段的值进行处理后写入数据库。 系统支持 auto 、 insert 和 update 三个属性,可以分别在写入、新增和更新的时候进行字段的自动完 成机制,auto属性自动完成包含新增和更新操作 我们定义学生模型如下: <?php namespace app\index\model; use think\Model; class...

李书明(石家庄)的专栏 714
上一篇: 模型获取器
下一篇: 模型时间戳+软删除
自娱自乐22
博客等级 码龄18年 241粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值