ThinkPHP5开发连载五十一模型-只读字段

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

1. 模型设置只读字段

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

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

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

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

浏览器访问

修改前:

修改后:

注意:

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

2. 动态设置只读字段

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

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

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

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

修改前:

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

注意:

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912A1BRQR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券