(thinkphp6的模型创建方法)(thinkphp模型model方法)

上一篇文章讲解“模型-自动时间戳”,本篇文章讲解“模型-只读字段”。

1. 模型设置只读字段

只读字段用来保护某些特殊的字段值不被更改,这个字段的值一旦写入,就无法更改。使用只读字段的功能,我们只需要在模型中定义readonly属性:

(thinkphp6的模型创建方法)(thinkphp模型model方法)

例如,上面定义了当前模型的name字段为只读字段,不允许被更改。也就是说当执行更新方法之前会自动过滤掉只读字段的值,避免更新到数据库。

①新建User模型,并在User模型中只读name字段

(thinkphp6的模型创建方法)(thinkphp模型model方法)

②新建Index控制器,并在控制器中新建更新方法

(thinkphp6的模型创建方法)(thinkphp模型model方法)

③浏览器访问

修改前:

(thinkphp6的模型创建方法)(thinkphp模型model方法)

修改后:

(thinkphp6的模型创建方法)(thinkphp模型model方法)

注意:

1. 由于对namel字段设置了只读,因此只有cid与update_time字段的值被更新了,而name值仍然还是更新之前的值(create_time字段是创建时间,本来就不更新)。

2. 动态设置只读字段

5.1版本支持动态设置只读字段。

①取消User模型中设置的只读属性

(thinkphp6的模型创建方法)(thinkphp模型model方法)

②Index控制器中,新建updateDynamic方法,在方法中动态设置只读字段

(thinkphp6的模型创建方法)(thinkphp模型model方法)

③浏览器访问后,查看数据库

修改前:

(thinkphp6的模型创建方法)(thinkphp模型model方法)

修改后:由于只读字段cid,即只有name与update_time字段被修改。

(thinkphp6的模型创建方法)(thinkphp模型model方法)

注意:

1. 只读字段仅针对模型的更新方法,如果使用数据库的更新方法则无效。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

(thinkphp6的模型创建方法)(thinkphp模型model方法)

关注卓象程序员,定期发布技术文章

下一篇讲解“模型-软删除”

(thinkphp6的模型创建方法)(thinkphp模型model方法)
(thinkphp6的模型创建方法)(thinkphp模型model方法)

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者程序员小娇所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(thinkphp6的模型创建方法)(thinkphp模型model方法)
本文链接:https://www.51qsb.cn/article/dvjna2.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-08-03
下一篇2023-08-03

你可能还想知道

发表回复

登录后才能评论